ASP.NET Web.config CustomErrors不适用于Web服务

时间:2012-08-28 07:44:11

标签: asp.net web-services

我有一个简单的Web服务,有两个webmethods。

的https://localhost/Sub/WS/Dash.asmx/test_error_methodnameXXXXXXXXXXX

当我从浏览器调用上述请求时。它给出了一条错误信息,上面写着: -

  

System.InvalidOperationException: test_error_methodnameXXXXXXXXXXX Web   服务方法名称无效。 at   System.Web.Services.Protocols.HttpServerProtocol.Initialize()at   System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type,   HttpContext上下文,HttpRequest请求,HttpResponse响应,   布尔和放大器; abortProcessing)

我尝试在web.config文件的帮助下进行如下操作: -

<system.web>    
    <customErrors mode="On" defaultRedirect="~/Sub/ErrorPage/AppErrors.aspx">
       <error statusCode="500" redirect="500.aspx" />
    </customErrors>       
</system.web>

在这种情况下, 重定向不会发生 到500.aspx页面或AppErrors.aspx。 如果我更改了mode属性中的值,我可以看到发生的变化。

感谢。

2 个答案:

答案 0 :(得分:0)

要调用javascript的Web方法,您应将Web服务标记为脚本服务。

[ScriptService]
public class MyService : WebService
{

}

在脚本管理器中包含对它的引用:

<asp:ScriptManager ID="_scriptManager" runat="server">
  <Services>
    <asp:ServiceReference Path="Dash.asmx" />
  </Services>
</asp:ScriptManager>

在js

中调用它
try {
    Dash.MyService.ErrorMethodName();
}
catch(exception){
    //handle exception
}
finally {
    //round up
}

答案 1 :(得分:0)

我在web.config的帮助下找到了修复程序。

坚持

<diagnostics suppressReturningExceptions="true"/>