烈火建站学院(LieHuo.Net)文档 ASP.NET程序在编译的时候默认是Any CPU,即编译的程序可以在X86、X64系统平台上运行。若希望我们的ASP.NET程序运行在X64系统上,我们所要做的仅仅是部署IIS,修改配置。
若想程序运行于IIS32位模式下,即运行在.net framwork32位下进行如下配置:
1.cscript %systemdrive%\inetpub\adminscripts\adsutil.vbs set w3svc/appPools/enable32bitapponwin64 1 修改IIS配置,允许32位程序运行
2.windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -i 为IIS注册asp.net32。注册后在IIS的web扩展里显示的是Asp.net2.0.*32bit。
3.Web扩展里允许 Asp.net2.0.*32bit运行。运行的是w3wp32.exe进程。
二.64位模式
1.cscript %systemdrive%\inetpub\adminscripts\adsutil.vbs set w3svc/appPools/enable32bitapponwin64 0 默认就是0,若原来运行了32位程序,则需要重新设置为0。
2.windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis – i 为IIS注册64为Asp.NET。注册了64位ASP.NET的IIS在Web扩展里显示的是Asp.net2.0.*。
3.Web扩展里允许 Asp.net2.0.*运行。运行的是w3wp.exe进程。
关于编译:开头提到,一般编译默认是Any CPU,即程序默认就支持了X86、X64。但其中是否有性能损失,我还未进行测试,但理论上个人觉得会有个损失率。希望了解这方面的朋友提供一下资料。俺在测试时候将X86编译的程序运行在X64上,结果提示:试图在 32 位平台上加载 64 位程序集。如果出于反射目的而加载程序集,请改用 ReflectionOnlyLoad()。