什么可能导致.Net 4.0和IIS 6出错?

时间:2010-05-11 15:33:42

标签: asp.net asp.net-mvc iis-6

我在IIS 6上有两个网站,当它们设置为ASP.NET 2(通过IIS属性中的ASP.NET选项卡)时会抛出服务器错误 - 一个是因为依赖于.NET 4中构建的库,另外因为它是一个N4 / MVC2应用程序,它在config中指定了4.0作为targetFramework。

当我将ASP.NET选项卡中的设置更改为.NET 4时,两个网站都会返回“无法找到页面”错误,即使指向特定页面(通过MVC应用程序中的路由,也是.aspx) ASP.NET应用程序中的文件。)

我已经尝试将一个通配符ISAPI过滤器添加到MVC应用程序,如在网上描述的几个地方,但这没有做任何事情(无论是指向2.0 dll还是4.0 dll)。服务器和Visual Studio中的.NET 4版本是相同的(4.0.30319)。

我在Windows Server 2003上的IIS 6下运行。

有没有人有任何想法,我可能会在这里失踪?

2 个答案:

答案 0 :(得分:4)

根据Pete的评论,我的答案是:

  

这是IIS,Web Service中的一个设置   扩展。 .NET 4设置为   禁止。允许它,以及一切   工作

答案 1 :(得分:3)

显然,您的应用必须在CLR的v4中运行。那部分很清楚。让您的ISAPI过滤器正确可能是一个艰难的过程。首先,你需要确保(我的意思是确保,不要只看一眼并认为它是正确的,复制/粘贴路径并确保一切都正确指向)所有过滤器都指向正确的v4.0 DLL 。接下来,确保您的通配符过滤器没有选中“确保文件存在”复选框。这是导致我最多问题的原因。最后,确保您的权限正确。

如果仍然无法正常工作,您需要打开Fusion日志记录,检查您的iis日志,甚至可以拔出进程监视器,看看当您连接到服务器时IIS正在尝试做什么。