WCF – erreur 404.3 – lors d’un accès à un fichier .svc avec IIS7
Lorsque vous configurez un service WCF avec IIS (via un fichier .svc), il se peut que vous ayez l’erreur suivante lorsque vous tentez d’accéder au fichier .svc
HTTP Error 404.3 - Not Found
The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map.
Cette erreur survient car le fichier de config ne possède pas de handler configuré pour ce type de fichier.
Depuis IIS7, les handlers et modules sont directement gérés par IIS et non ASP.net, il s’agit de l’une des caractéristiques du pipeline mode integrated. Si votre fichier de config contient une entrée pour les handlers au niveau de la section system.web/httpHandlers, il est conseillé de migrer cette config vers la section system.webServer/httpHandlers propre à IIS7.
Pour cela, on peut utiliser l’outil de migration via la commande
c:\windows\System32\inetsrv\appcmd migrate config “PouetSiteName/”
Si l’erreur persiste ou si votre fichier original ne contient pas le handler requis, il faut le rajouter manuellement.
<configuration>
<system.webServer>
<handlers>
<add name="ServiceHandler" verb="*" path="*.svc"
type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</handlers>
</system.webServer>
<configuration>
Cette erreur n’est pas lié à WCF, il se peut que vous obtenez la même erreur avec un autre type de fichier. Dans ce cas, il faut rajouter le handler associé à la ressource demandé. N’hésitez pas à me contactez via les commentaires si vous ne savez pas quel handler utiliser pour d’autres types de fichiers.