11

我在我的 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 的默认文档列表中。请帮忙。

4

7 回答 7

20

在看似不相关的位置找到了修复 - 尝试将“EnableExtensionlessUrls”注册表项设置为 0:

ASP.NET 4 重大更改 -> ASP.NET 2.0 应用程序可能会生成引用 eurl.axd 的 HttpException 错误

在 Windows 注册表中,打开以下节点:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\4.0.30319.0

  1. 创建一个名为 EnableExtensionlessUrls 的新 DWORD 值。
  2. 将 EnableExtensionlessUrls 设置为 0。这将启用无扩展 URL 行为。
  3. 保存注册表值并关闭注册表编辑器。
  4. 运行 iisreset 命令行工具,这会导致 IIS 读取新的注册表值。
于 2010-06-15T22:10:57.430 回答
4

你会在这里找到答案 http://johan.driessen.se/archive/2010/04/13/getting-an-asp.net-4-application-to-work-on-iis6.aspx

.Net 4.0 无法使用 IIS 运行,因此您必须运行命令(在文件夹 c:\windows\system32 中):cscript iisext.vbs /EnFile C:\WINDOWS\Microsoft.NET\Framework\v4 .0.30319\aspnet_isapi.dll 或在您的情况下,因为您正在运行 x64

cscript iisext.vbs /EnFile C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll

于 2010-04-15T06:45:57.903 回答
2

将 ASp.Net 版本从 4.0 更改为 2.0 并应用它。并将 Asp.Net 版本恢复到 4.0。这将解决这个问题。

于 2015-08-19T09:50:17.597 回答
1

我使用以下正则表达式作为Ionics Isapi Rewriter的第一条规则,用于在IIS 6上的ASP.NET 4上运行的网站,以解决由 ASP.NET 4 引入的重大更改引起的问题:

RewriteRule ^(.*)/eurl.axd/[a-f0-9]{32}(.*)$ $1$2

这让我再次使用无扩展名网址。

请注意,第二组捕获查询字符串(如果存在)并将其恢复为重写的 url。

是的,它是一个特性,而不是一个错误

于 2011-02-10T15:49:06.103 回答
1

我显然没有足够的评论,但我想说 Will WM 的解决方案对我有用。将 EnableExtensionlessUrls 添加到注册表更正了该问题。

附带说明一下,如果您在任何时候运行 aspnet_regiis,它将删除此值,您需要再次添加它。

于 2010-10-12T16:02:54.110 回答
0

如果您在同一站点上有另一个设置为 4.0 的虚拟目录并且 DefaultWebSite 设置为使用 ASP.NET 4.0,您也会在 IIS6 中的 ASP.NET 2.0 虚拟目录上收到此错误。

解决方案是将 DefaultWebSite 改回 ASP.NET 2.0。您的 4.0 虚拟目录在该网站下仍然可以正常工作。

于 2011-08-12T19:07:49.050 回答
0

您确定默认文档列表中的 default.aspx 不是 default.asp 吗?

于 2010-04-14T06:36:34.847 回答