J'ai un projet Web API assez straight-forward qui a la route suivante sous la route par défaut dans WebApiConfig.cs:API Web ressource imbriquée ne sous IIS8
config.Routes.MapHttpRoute(
name: "ChildApi",
routeTemplate: "api/{parentController}/{parentId}/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Cela fonctionne bien en marche sous le serveur de développement VS2012 et la navigation vers mon URI de test (/api/team/1/entries/2013-04-19
) renvoie les résultats corrects. Une fois que je publie cela et tenter d'accéder au même URI à l'aide IIS8, je reçois les éléments suivants erreur 404:
HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
Most likely causes:
The directory or file specified does not exist on the Web server.
The URL contains a typographical error.
A custom filter or module, such as URLScan, restricts access to the file.
Things you can try:
Create the content on the Web server.
Review the browser URL.
Create a tracing rule to track failed requests for this HTTP status code and see which module is calling SetStatus. For more information about creating a tracing rule for failed requests, click here.
Detailed Error Information:
Module IIS Web Core
Notification MapRequestHandler
Handler StaticFile
Error Code 0x80070002
Tous les itinéraires non imbriqués (par exemple /api/team/1
) fonctionnent très bien, mais il semble que cette voie particulière est interprétée comme un fichier statique et IIS tente de le servir en tant que tel? Est-ce que quelqu'un d'autre a déjà vu/résolu ce problème auparavant?