我正在尝试获取以下(和类似的)URL在我的ASP.net MVC4 / WebApi项目中工作:
http://127.0.0.1:81/api/nav/SpotiFire/SpotiFire.dll
负责此网址的路由如下所示:
config.Routes.MapHttpRoute( name: "Nav",routeTemplate: "api/nav/{project}/{assembly}/{namespace}/{type}/{member}",defaults: new { controller = "Nav",assembly = RouteParameter.Optional,@namespace = RouteParameter.Optional,type = RouteParameter.Optional,member = RouteParameter.Optional } );
它工作得很好,如果我删除。在文件名中,或者如果我在URL之后添加斜杠,但这也意味着我无法使用Url.Route方法等。我得到的错误是一个通用的404错误(下面的图片)。
我尝试添加< httpRuntime targetFramework =“4.5”relaxedUrlToFileSystemMapping =“true”/>到我的web.config,我也试过添加
<compilation debug="true" targetFramework="4.5"> <buildProviders> <remove extension=".dll"/> <remove extension=".exe"/> </buildProviders> </compilation>
而且似乎没有一个工作。所以我的问题基本上是如何让这个URL工作,并正确地映射?