ASP.net 4.0 default.aspx problem on IIS6
我在Windows 2003 Enterprise x64上安装了.NET Framework 4,编写了简单的ASP.NET 4.0应用程序(仅限default.aspx页)。如果请求为default.aspx,而不是根站点,则应用程序工作得很好:
Contoso.com/-不工作(获取404错误)
Contoso.com/default.aspx-工作。
default.aspx在IIS中的默认文档列表中。请帮忙。
在似乎不相关的位置找到修复程序-请尝试将"EnableExtensionListURL"注册表项设置为0:
ASP.NET 4中断更改->ASP.NET 2.0应用程序可能会生成引用eurl.axd的httpException错误:
在Windows注册表中,打开以下节点:HKEY U本地计算机软件MicrosoftASP.NET4.0.30319.0
你可以在这里找到答案http://johan.driessen.se/archive/2010/04/13/getting-an-asp.net-4-application-to-work-on-iis6.aspx
.NET 4.0不允许自己与IIS一起运行,因此您必须运行该命令(在文件夹C:WindowsSystem32中):cscript iisext.vbs/enfile C:windowsmicrosoft.netframeworkv4.0.30319aspnet_isapi.dll或者在您的情况下,因为您正在运行x64
cscript iisext.vbs/enfile C:windowsmicrosoft.netframework64v4.0.30319aspnet_isapi.dll
将ASP.NET版本从4.0更改为2.0并应用它。并将ASP.NET版本还原为4.0。这将解决这个问题。
我使用以下regex作为iis 6上ASP.NET 4上运行的网站的IONICS ISAPI重写器的第一个规则,以解决由ASP.NET 4引入的中断更改引起的问题:
1 | RewriteRule ^(.*)/eurl.axd/[a-f0-9]{32}(.*)$ $1$2 |
这让我再次使用无扩展URL。
请注意,第二组捕获查询字符串(如果存在),并将其重新定位到重写的URL。
是的,这是一个特性,而不是一个bug。
显然,我没有足够的观点发表评论,但我想说的是,威尔·WM的解决方案对我有效。向注册表中添加EnableExtensionLessURL解决了该问题。
另请注意,如果您在任何时候运行aspnet_regiis,它将删除此值,您需要再次添加它。
如果在同一站点上的另一个虚拟目录设置为4.0,并且默认网站设置为使用ASP.NET 4.0,则在iis6中的ASP.NET 2.0虚拟目录上也会出现此错误。
解决方案是将DefaultWebsite更改回ASP.NET 2.0。您的4.0虚拟目录在该网站下仍然可以正常运行。
在默认文档列表中,您确定它是default.aspx而不是default.asp吗?