【发布时间】:2011-03-06 09:22:24
【问题描述】:
使用以下步骤:
(我检查了this similar post,并没有解决我的问题。)
- 在 Windows Server 2003/IIS6 下,我创建了一个名为“testapp”的新站点
- 在 VS2010 中,我创建了一个新的 ASP.NET MVC 2 应用程序。
-
我使用以下代码添加了一个名为“Info”的视图:
<h2>System</h2> <h3>Request</h3> <% foreach (string key in Request.Headers) { Response.Write(string.Format("<p>{0}={1}</p>" , key , Request.Headers[key]) ); } %>
除了标准标题之外,我还看到了这个:
X-REWRITE-URL=/home/info/eurl.axd/e3299f29f8043d4f8a27e0f1d0c40971
我正在使用Helicon ISAPI Rewrite 3,它正在生成“X-REWRITE-URL”标头。
我的问题是:/eurl.axd?.... 来自哪里?我见过this article,但由于这是一个带有新应用程序池的新文件夹中的空白应用程序,因此此 Web 文件夹中没有运行 2.0.* 应用程序。没有指向另一个目录的虚拟文件夹等。该站点配置为 ASP.NET 4.0,已正确注册。
问题是 eurl.axd 在我的 MVC 路由中使用了参数。
“ASP.NET 4.0 Breaking Changes”文章中的选项对我来说并不适用,因为这个应用程序中没有任何 2.0 组件,我需要使用无扩展名的 URL。
更新 我刚刚注意到 GAC 中的 System.Web.MVC 是 2.0.0.0 版本。安装 VS2010 和 4.0 框架是否应该更新到 4.0?
我不明白为什么我会在默认的 ASP.NET MVC 2 应用程序中看到此错误。救命!!
2/2011 更新 - 已解决
最终尝试通过注册表黑客禁用无扩展 URL,问题消失了。我发现禁用无扩展 URL 使无扩展 URL 工作(使用 IIS6 中的通配符映射)是违反直觉的,但我会尽我所能。
2014 年 12 月更新
(快乐|快乐|和平)(圣诞节|光明节|宽扎节|十二月)。
我忘了提到所有其他 Windows 更新都会导致注册表更改。这似乎是一个奇怪的问题,对http://site.dom/bob 的请求会失败,而http://site.dom/bob/ 会成功。玩得开心! (注意尾部的斜线。)
【问题讨论】:
标签: asp.net-mvc .net-4.0 iis-6