asp.net-mvc – 在MVC4中路由具有扩展名的url将无法正常工作,尝试提供静态文件
|
我使用MVC4,需要将这样的请求路由到控制器: [MYAPP] /data/fileinfo.xml 这是我配置的路由: routes.MapRoute(
name: "Data",url: "Data/{file}",defaults: new { controller = "Data",action = "fileinfo"}
);
现在,如果URL不包含.xml扩展名,这样就可以将请求发送到我的DataController,但一旦使用扩展名,IIS会尝试提供一个静态文件(而不是路由到我的控制器),而且得到404错误. 我已经在线阅读了关于这个问题的大量问题/答案,并且我尝试的每个解决方案都失败了. 例如,我在配置我的RouteCollection时尝试使用RouteExistingFiles = true,并且我添加了< modules runAllManagedModulesForAllRequests =“true”/>在web.config中,但无效. 如果任何人有一个想法,我应该尝试什么或我可能会失踪,这将是非常感谢.我使用的是asp.Net 4.5,VS 2012和IIS 8.0. 解决方法您可以将其添加到< system.webServer>< handlers>中的web.config中.部分:<add name="ManagedDllExtension"
path="data/fileinfo.xml"
verb="GET" type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0" />
你的路线是 routes.MapRoute(
name: "Data",url: "Data/fileinfo.xml",action = "fileinfo"}
);
还有< modules runAllManagedModulesForAllRequests =“true”>但它似乎不适用于MVC4 / IIS8(曾经在MVC3 / IIS7 IIRC中).更多信息here.还有一个性能影响这一个,因为每个请求将路由通过管理的管道. HTH (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 在Response.RedirectToRoute之后跳过页面执行的
- asp.net-mvc – ASP.NET MVC4 CustomErrors DefaultRedirec
- asp.net – 向实体框架添加其他属性4代码首先是CTP 5实体
- asp.net – HttpServerUtility.UrlPathEncode vs HttpServe
- asp.net – 如何将一个对象序列化为查询字符串格式?
- .net – vNext是完全“基于约定的编程”吗?
- asp.net – 为什么Global.asax事件在我的ASP.NET网站没有触
- asp.net-mvc-4 – 当模型中存在一对多关系时,MVC“创建视图
- asp.net-mvc-3 – 依赖注入与多个类实现的接口
- asp.net-mvc – 使用OWIN和WsFederation为MVC,web api和sig
- 选择顶部N值,但跳过M个结果
- asp.net中的ASHX处理程序文件的好处是什么?
- asp.net-mvc – 我什么时候应该在ASP.NET MVC中创
- asp.net-mvc – 如何填充/验证您的ViewModels?
- asp.net – 这些Web Essentials选项有什么作用?
- asp.net-mvc-4 – MVC 4中的HttpContext.Current
- asp.net-mvc – MVC,不再“假设”使用HttpContex
- asp.net-mvc – MVC3中的CheckboxList查看并获取
- 自动填充 – 带下拉建议的文本框
- asp.net – Request.Browser.Platform不返回iPad
