如何在Web服务方法抛出异常时获取错误消息。

时间:2012-01-16 00:50:41

标签: c# javascript asp.net web-services error-handling

我使用 WebServiceProxy.invoke 来调用webservice方法。我意识到其中一个参数是一个函数来处理当方法抛出异常时出现的错误。

我尝试使用方法 get_message()来获取错误消息。当我从localhost访问它时,这很好用。但是当我从远程计算机访问该方法时,消息会被标准错误更改:“处理请求时出错”

callws = function (args) {
    // call webservice to fill content panel
    Sys.Net.WebServiceProxy.invoke(_servicePath, _serviceMethod, false,
            { contextKey: args }, Function.createDelegate(this, onSubmitComplete),
              Function.createDelegate(this, onSubmitError), args);
    }

onSubmitComplete = function (result, userContext, methodName) {
    ...
}

onSubmitError = function (result, userContext, methodName) {
    // note: this result.get_message() contain exception message when
    // accessed from localhost, but contain "There was an error processing the request"
    // when accessed from remote computer
    alert(result.get_message());
}

1 个答案:

答案 0 :(得分:3)

ASP.net运行时错误并不意味着在部署环境中向您的客户显示,您的服务器已正确配置为不在部署中显示customErrors,如果您要调试代码,您可以设置modeweb.configcustomErrorsoff标记,或者保留为RemoteOnly并在服务器上调试代码!