ASP.NET Web.config自定义错误不适用于Web服务
我有一个带有两个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文件的帮助下进行如下工作:-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
<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"/>