Variável de ambiente para o local do .NET Framework

1

Eu trabalho em um aplicativo da web .NET, visando várias versões do .NET e IIS, que é entregue com um arquivo web.config. Conseguimos usar o mesmo arquivo web.config para a maioria das configurações, mas temos uma linha que está nos causando problemas.

Um de nossos /configuration/system.web/handlers precisa especificar um caminho para o aspnet_isapi.dll.

<remove name="ASP.Net-ISAPI-Wildcard" />
<add name="ASP.Net-ISAPI-Wildcard" path="*" verb="*" type="" modules="IsapiModule"
 scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll"
 resourceType="Unspecified" requireAccess="None" allowPathInfo="false"
 preCondition="runtimeVersionv2.0" responseBufferLimit="4194304" />

Como você pode ver, o caminho aponta diretamente para uma versão de framework, o que causa problemas, pois algumas pessoas são de 32 bits (que usam Microsoft.Net\Framework ) e outras são de 64 bits ( who use Microsoft.Net\Framework64 ).

Existe uma variável de ambiente, como %windir% , que eu possa usar para especificar o caminho para a versão correta do framework, sem ter que codificar um caminho para as DLLs .NET?

    
por HardlyKnowEm 13.12.2013 / 20:14

1 resposta

3

Para responder a sua pergunta específica, não, não há nenhuma variável de ambiente para o módulo isapi do asp.net.

Com manipuladores gerenciados, isso não é um problema, você apenas especifica o nome do tipo e a assinatura do assembly que deseja e o IIS o carregará do Cache Global de Montagem

No entanto, para módulos ISAPI, você ainda precisa fornecer um caminho, mas o que você pode fazer é definir dois manipuladores e fornecer diferentes condições prévias com base no aplicativo de hospedagem:

<remove name="ASP.Net-ISAPI-Wildcard" />
<add name="ASP.Net-ISAPI-Wildcard-64" 
 scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll"
 preCondition="runtimeVersionv2.0,bitness64" />
<add name="ASP.Net-ISAPI-Wildcard-32" 
 scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll"
 preCondition="runtimeVersionv2.0,bitness32" />

(detalhes deixados de fora para enfatizar atributos relevantes)

    
por 18.12.2013 / 02:30

Tags