0

我有一个带有两个 webmethod 的简单 web 服务。

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

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

System.InvalidOperationException:test_error_methodnameXXXXXXXXXXX Web 服务方法名称无效。 在 System.Web.Services.Protocols.HttpServerProtocol.Initialize() 在 System.Web.Services.Protocols.ServerProtocolFactory.Create(类型类型,HttpContext 上下文,HttpRequest 请求,HttpResponse 响应,布尔和中止处理)

我试图在 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 上。如果我更改模式属性中的值,我可以看到正在发生的变化..

谢谢。

4

2 回答 2

1

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

<diagnostics suppressReturningExceptions="true"/>  
于 2012-09-05T07:35:11.390 回答
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
}
于 2012-08-28T08:07:26.150 回答