【问题标题】:ASP.NET Web.config CustomErrors not working for the webserviceASP.NET Web.config CustomErrors 不适用于 Web 服务
【发布时间】:2012-08-28 07:44:10
【问题描述】:

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

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

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

System.InvalidOperationException: test_error_methodnameXXXXXXXXXXX Web 服务方法名称无效。 at System.Web.Services.Protocols.HttpServerProtocol.Initialize() 在 System.Web.Services.Protocols.ServerProtocolFactory.Create(类型类型, HttpContext 上下文,HttpRequest 请求,HttpResponse 响应, Boolean& 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。 如果我更改模式属性中的值,我可以看到正在发生的变化..

谢谢。

【问题讨论】:

    标签: asp.net web-services


    【解决方案1】:

    我在 web.config 的帮助下找到了修复方法。

    坚持

    <diagnostics suppressReturningExceptions="true"/>  
    

    【讨论】:

      【解决方案2】:

      要为 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
      }
      

      【讨论】:

      • 它已经被标记为脚本服务。没事儿。我面临的问题是 InvalidOperationException 消息的处理,当有人直接从浏览器位置栏调用 webservice 方法时..
      • javascript try catch 会帮助你
      • 但是这个东西不是从客户端调用的......我想进行这个更改以提供适当的消息,从而防止恶意用户的内容欺骗。网络服务中不存在 test_error_methodnameXXXXXXXXXXX。
      • 我在 web.config CustomErrors 的帮助下尝试过,但没有发生重定向..
      • 重定向不会自动发生,如果您在 javascript 中检测到错误,您必须自己重定向,通过设置 location.href = CUSTOM_ERROR_URL
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      相关资源
      最近更新 更多