Alxandr Alxandr - 1 year ago 124
ASP.NET (C#) Question MVC4 WebApi route with file-name in it

I'm trying to get the following (and similar) urls to work in my MVC4/WebApi project:

The route responsible for this url looks like this:

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 }

It works just fine if I remove the . in the file-name, or if I add a slash behind the URL, but that also means I can't use the
-methods etc. The error I get is a generic 404-error (image below).

enter image description here

I've tried adding
<httpRuntime targetFramework="4.5" relaxedUrlToFileSystemMapping="true" />
to my web.config, and I've also tried adding

<compilation debug="true" targetFramework="4.5">
<remove extension=".dll"/>
<remove extension=".exe"/>

And none of it seems to work. So my question is basically, how can I get this URL to work, and map correctly?

Answer Source

You could add the following handler to the <handlers> section of your <system.webServer>:


This will make all requests containing .dll be served through the managed pipeline. Also notice how I have limited them only to the GET verb to limit the performance impact.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download