C# 在IIS 6中托管.NET 4.0 Web服务

C# 在IIS 6中托管.NET 4.0 Web服务,c#,web-services,iis-6,application-pool,C#,Web Services,Iis 6,Application Pool,我正在尝试托管第二个网站(已使用的默认网站之外),它是.NET4支持的Web服务。这是iis6 默认网页使用.NET 2.0。在IIS 6中,通过创建两个不同的应用程序池,可以让两个独立的网站运行不同版本的.NET。我已经做到了 但是,我遇到了一个常见的问题,即IIS中不显示ASP.NET选项卡。该选项卡允许您设置站点使用的.NET版本 我的解决方法是通过命令行更改每个站点引用的.NET版本: aspnet_regiis -s (site path) 此问题的另一个解决方案是将IIS切换到64

我正在尝试托管第二个网站(已使用的默认网站之外),它是.NET4支持的Web服务。这是iis6

默认网页使用.NET 2.0。在IIS 6中,通过创建两个不同的应用程序池,可以让两个独立的网站运行不同版本的.NET。我已经做到了

但是,我遇到了一个常见的问题,即IIS中不显示ASP.NET选项卡。该选项卡允许您设置站点使用的.NET版本

我的解决方法是通过命令行更改每个站点引用的.NET版本:

aspnet_regiis -s (site path)
此问题的另一个解决方案是将IIS切换到64位模式,这将导致实际显示ASP.NET选项卡。问题是,将IIS切换到64位与现有网站不兼容,即使重新配置IIS以引用以下目录

Microsoft.NET/Framework64

相对于

Microsoft.NET/Framework

有没有人有这样在一台服务器上托管单独页面的经验?这是一场噩梦。实际上,我可以让第二个页面正常工作,但是原始默认页面失败,反之亦然

我现在将IIS设置为32位模式,并从cmd行运行以下命令:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis -lk
W3SVC/  2.0.50727.3053
W3SVC/1/ROOT/   2.0.50727.3053
W3SVC/87257621/root/    4.0.30319.1
这清楚地表明,我的第二个网站(ID为8725721)是为.NET 4设置的,而原始网站(ID为1)是为.NET 2设置的。它们位于不同的应用程序池中

在这种配置下,初始站点工作。在新站点上,我可以浏览目录,但是.asmx页面产生404错误

当我为64位模式启用IIS时,我已使.asmx页面按预期工作,但随后默认网站出现“服务不可用”一般错误,因为.NET是从Framework路径而不是Framework64路径安装的。但是,即使切换到Framework64路径,默认页面也会出现更多错误

另外,在我更改我尝试运行到.NET 4的网站的目标框架之前,事件查看器中会显示此错误:

未能初始化AppDomain:/LM/W3SVC/87257621/Root

异常:System.IO.FileLoadException


消息:无法加载文件或程序集“System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。访问被拒绝。

在IIS中的web服务扩展下,ASP.NET 4.0是否设置为允许?

是的。实际上我刚刚解决了这个问题,结果是我需要给根目录授予网络服务权限。很简单。