ASP.NET程式在編譯的時候預設是Any CPU,即編譯的程式可以在X86、X64系統平台上運行。若希望我們的ASP.NET程式運行在X64系統上,我們所要做的僅僅是部署IIS,修改配置。
若想程式運行於IIS32位元模式下,即運行在.net framwork32位下進行如下配置:
1.cscript %systemdrive%inetpubadminscriptsadsutil.vbs set w3svc/appPools/enable32bitapponwin64 1 修改IIS配置,允許32位程式運行
2.windowsMicrosoft.NETFrameworkv2.0.50727aspnet_regiis -i 為IIS註冊asp.net32。註冊後在IIS的web擴充裡顯示的是Asp.net2.0.*32bit。
3.Web擴充裡允許 Asp.net2.0.*32bit運行。啟動並執行是w3wp32.exe進程。
二.64位元模式
1.cscript %systemdrive%inetpubadminscriptsadsutil.vbs set w3svc/appPools/enable32bitapponwin64 0 預設就是0,若原來運行了32位程式,則需要重新設定為0。
2.windowsMicrosoft.NETFramework64v2.0.50727aspnet_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()。 學到了一個寶貴的經驗,哇哈哈!
參考資料
<