我想要在 Windows 2003 R2 SP2 x64 上的 IIS 6 中托管 ASP.NET 4.0 Web 应用程序。
这有可能吗?我有以下C:\WINDOWS\microsoft.net\Framework
- 1.0.3705
- 1.1.4322
- 2.0.50727
- 3.0
- 3.5
- 4.0.30319
C:\WINDOWS\microsoft.net\Framework64
除 1.0 和 1.1 外,其他均相同。
IIS 6 以 32 位模式运行,但网站属性屏幕中没有 ASP.NET 选项卡。因此我无法切换框架,也不知道哪些框架在哪个应用程序池中运行。
编辑尝试了 GregD 的建议。它让我重新在 IIS 中设置了选项卡,以便我可以为网站设置正确的框架,但当我尝试启动应用程序池时,它在事件日志中给出了以下内容:
无法加载站点/服务的所有 ISAPI 筛选器。因此启动被中止。
经过快速谷歌搜索后,我发现了这一点:http://nishantrana.wordpress.com/2008/09/09/service-unavailable-could-not-load-all-isapi-filters-for-siteservice-therefore-startup-aborted/
这让我陷入了困境。在 metabase.xml 文件中启用和删除 64 位设置。
因为aspnet_regiis -i告诉我它无法工作,因为 IIS 处于 64 位设置。
答案1
你能行的。
在您的 Web 服务扩展文件夹(在 IIS 管理器中)中,您的 asp.net 扩展是否针对不同版本启用了?
编辑添加:要恢复您的标签,请尝试以下操作:
1)停止 IIS 管理服务(以及任何依赖于它的服务)
2)在记事本或您最喜欢的 XML 编辑器中打开 C:\WINDOWS\system32\inetsrv\MetaBase.xml。删除写着“Enable32BitAppOnWin64=”TRUE”的那行
3)重新启动IIS
答案2
现在可以使用了。看来我在 IIS 中没有切换框架的选项。
我做到了:
C:\WINDOWS\microsoft.net\Framework\v4.0.30319>cscript c:\inetpub\adminscripts\adsutil.vbs SET /w3svc/AppPools/Enable32BitAppOnWin64 True
进而
C:\WINDOWS\microsoft.net\Framework\v4.0.30319>aspnet_regiis.exe -i -enable
成功了!正如我所说,IIS 中看不到 ASP.NET 选项卡,但它确实有效!