我的应用程序中没有自定义路由,只有默认路由。如果我尝试打开localhost/myapp/controller/action/bla.bla
,它在我的机器上运行正常(Windows 7 x32,包括Cassini和IIS),但在服务器上失败(2008 R2 x64)。找到similar question但解决方案不起作用。另外,发现this article Eilon说它是MVC的一个特殊角色,它是“按设计”。为什么我的机器和生产箱之间存在差异,我该如何解决?
更新:问题网站启用了ExtensionlessUrl-ISAPI-4.0_64bit和ExtensionlessUrl-Integrated-4.0并映射到“*。”。 web.config中没有任何托管处理程序。 Dmitry提到的补丁“不适用于您的计算机”,可能因为它已经安装了SP1。我可以确认ASP.NET MVC报告的是404,而不是IIS,因为我可以在Application_PreSendRequestHeaders中看到请求。此外,如果我使用重载的GetHttpHandler()附加MvcRouteHandler的后代,它记录所有RouteData,则表明“id”已正确映射到“bla.bla”。有什么想法吗?
答案 0 :(得分:3)
应用程序是否使用映射到“*”的任何托管处理程序。延期?如果是这样,请查看此链接:
答案 1 :(得分:2)
这项工作对我来说:
<system.webServer>
<handlers>
<add name="UrlRoutingHandler"
type="System.Web.Routing.UrlRoutingHandler,
System.Web, Version=4.0.0.0,
Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"
path="/Users/*"
verb="GET"/>
</handlers>
</system.webServer>
答案 2 :(得分:1)
通过查看所有第一次机会异常,您能找到哪些错误(例外)。 This将告诉您如何找到应用程序抛出的所有第一次机会异常。
答案 3 :(得分:1)
Win2k8r2sp1有一个新的更新,请看
http://www.shanmcarthur.net/Default.aspx?DN=7d0cd525-bbc5-46c3-8096-95f93827aeea
答案 4 :(得分:0)
请提供更多详细信息,例如预期结果,您会得到什么错误。你到目前为止尝试过哪些解决方案?您是否尝试过配置解决方案?
<httpRuntime relaxedUrlToFileSystemMapping="true" />
至于“为什么我的机器和生产箱之间存在差异”......好吧,我的朋友,这是一个只有你能回答的问题。
答案 5 :(得分:0)
所有最新的Windows更新(在SP1之后)似乎都解决了这个问题。