ASP.NET Web.config自定义错误不适用于Web服务

ASP.NET Web.config自定义错误不适用于Web服务,asp.net,web-services,Asp.net,Web Services,我有一个带有两个webmethods的简单Web服务 https://localhost/Sub/WS/Dash.asmx/test_error_methodnameXXXXXXXXXXX 当我从浏览器调用上述请求时。它会给我一条错误消息,内容如下:- System.InvalidOperationException:测试错误方法名称XXXXXXXXXX Web 服务方法名称无效。位于 System.Web.Services.Protocols.HttpServerProtocol.Initia

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

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

当我从浏览器调用上述请求时。它会给我一条错误消息,内容如下:-

System.InvalidOperationException:测试错误方法名称XXXXXXXXXX Web 服务方法名称无效。位于 System.Web.Services.Protocols.HttpServerProtocol.Initialize()位于 System.Web.Services.ProtocolFactory.Create(类型, HttpContext上下文,HttpRequest请求,HttpResponse响应, 布尔值(中止处理(&A)

我试图在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属性中的值,我可以看到正在发生的更改


谢谢。

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

[ScriptService]
public class MyService : WebService
{

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

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

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

棍子

<diagnostics suppressReturningExceptions="true"/>  


它已标记为scriptservice。那很好。我面临的问题是处理InvalidOperationException消息,当有人直接从浏览器位置栏调用webservice方法时..javascript try catch将帮助您实现这一点,但这不是从客户端调用的。。。我希望进行此更改以提供适当的消息,从而防止恶意用户的内容欺骗。web服务中不存在test\u error\u MethodNamexxxxxxxxxx。我在web.config CustomErrors的帮助下进行了尝试,但没有发生重定向。重定向不会自动发生。如果在javascript中检测到错误,则必须通过设置
location.href=CUSTOM\u error\u URL
<diagnostics suppressReturningExceptions="true"/>