Tengo un servicio de descanso wcf en IIS 7.5. Cuando alguien visita una parte del punto final que no existe (es decir, http://localhost/rest.svc/DOESNOTEXIST frente a http://localhost/EXISTS) se le presenta una página de error genérico WCF gris y azul con código de estado 404. Sin embargo, me gustaría devolver algo como lo siguiente:Manejo 404 en WCF Servicio de descanso
<service-response>
<error>The url requested does not exist</error>
</service-response>
Intenté configurar los errores personalizados en IIS, pero solo funcionan si se solicita una página fuera del servicio de reposo (es decir, http://localhost/DOESNOTEXIST).
¿Alguien sabe cómo hacer esto?
Editar Después de la respuesta a continuación que era capaz de averiguar lo que necesitaba para crear una clase que implementa WebHttpExceptionBehaviorElement BehaviorExtensionElement.
public class WebHttpExceptionBehaviorElement : BehaviorExtensionElement
{
///
/// Get the type of behavior to attach to the endpoint
///
public override Type BehaviorType
{
get
{
return typeof(WebHttpExceptionBehavior);
}
}
///
/// Create the custom behavior
///
protected override object CreateBehavior()
{
return new WebHttpExceptionBehavior();
}
}
Luego pude hacer referencia a ella en mi archivo web.config a través de:
<extensions>
<behaviorExtensions>
<add name="customError" type="Service.WebHttpExceptionBehaviorElement, Service"/>
</behaviorExtensions>
</extensions>
Y a continuación, añadir
<customError />
a mis comportamientos de punto final predeterminado.
Gracias,
Jeffrey Kevin palanca
¿Utiliza REST Starter kit o WCF Web API? –