1

我使用 wcf 实现了一个 RESTful API,并使用 System.Web.Routing.RouteTable.Routes.Add(...) 将方法映射到 URL。如果用户键入了无效的 url(即没有映射到方法的 url),说 myapiurl/geeet/ 而不是 myapiurl/get/,则当前会显示标准错误消息,例如“不允许使用方法”。

如何自定义此错误消息?

我在 Global.asax 中尝试过 Application_Error,但它没有捕获异常。我还实现了一个 IErrorHandler,IServiceBehavior,但它也没有捕捉到这个错误。我已经实现的 WebHttpBehavior 也没有。

4

1 回答 1

0

“方法不允许”(HTTP 状态代码 405)消息表示服务器正在使用服务器 (IIS) 不允许的 HTTP 方法(GET、POST、PUT 等)接收来自客户端的请求。例如,客户端正在提交 PUT 请求,而 IIS 未配置为接受 PUT。我认为默认情况下,IIS 只支持 GET 和 POST。

正如您在问题中描述的那样,错误的 URI 通常会导致 HTTP 状态代码为 404 资源未找到。听起来您的 IIS 配置可能会导致您的问题,因为您无法在 ASP.NET 或 WCF 层捕获异常。

于 2012-11-21T15:19:36.397 回答