时间:2021-07-01 10:21:17 帮助过:3人阅读
In IIS6, this was a pain area. On a 64-bit Windows 2003 Server, you cannot run worker processes in both 32-bit mode and as well as 64 bit mode. Either only one of them was possible. This was possible by the below Metabase Key which would be applied to the W3SVC/AppPools node.
W3SVC/AppPools/enable32BitAppOnWin64 : true | false
Read more how to do this in IIS 6.0 here. But, in IIS7, you can run 32-bit and 64-bit worker processes simultaneously. Let’s see how to do it.
You have the same enable32BitAppOnWin64 property for the applicationPools in the applicationHost.config. Now, you can set this for individual application pools. Below is my sample configuration:
<applicationPools>
<add name="MyAppPool32bit" autoStart="true" enable32BitAppOnWin64="true" />
<add name="MyAppPool64bit" autoStart="true" enable32BitAppOnWin64="false" />
<applicationPoolDefaults>
<processModel identityType="NetworkService" />
</applicationPoolDefaults>
</applicationPools>
Below is how you do it from IIS7 manager:
Below is how you do from the AppCmd:
appcmd set apppool /apppool.name:MyAppPool32bit /enable32BitAppOnWin64:true
appcmd set apppool /apppool.name:MyAppPool32bit /enable32BitAppOnWin64:false
NOTE : By default, it is false.
Most of you may already know how to see if the process is really spun in a 32-bit mode in 64-bit OS. Yes, simple way is to open the Task Manager and go to Processes tab – you would see the below:
Now, you may ask how does the correct version of the DLLs picked up automatically. Open your applicationHost.config and search for aspnet_filter. You would see the below:
<isapiFilters>
<filter name="ASP.Net_2.0.50727.0" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness32" />
<filter name="ASP.Net_2.0.50727-64" path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness64" />
</isapiFilters>
The preCondition="bitness32" or "bitness64" decides which ISAPI Filter to pick up for corresponding modes. Same case with any DLL used, for example ISAPI Filter, Modules, etc.
Happy Learning!
64位系统中开启32位应用,特别是OLEDB
标签: