6

我有一个页面方法,我从我的 JavaScript 调用它说

Pagemethods.MyMethod(MyParameter, onsucess, onfailure);

在后面的代码中,我有这样的东西:

[WebMethod]
public static void MyMethod(Param)
{
   try{
     //DoSomething..
   }
   catch(exception ex)
   {
      //Log the exception and rethrow
      throw new exception(ex.innerexception);
   }
}

现在我面临的问题是:

每当我遇到异常时,我都会从后面的代码中抛出异常

但是在 onfailure 方法中,我只收到一条通用消息,说“服务器方法 MyMethod 失败并出现以下错误:”

我似乎没有得到异常详细信息,只有那个通用异常,

如何获取 JavaScript 的异常详细信息,以便根据 UI/JavaScript 端进行处理。

我已经验证,web.config 中的自定义错误设置不是问题。

有人能告诉我这里发生了什么吗?

PS:我已经逐步完成了每一行代码,并且记录后的异常将重新抛出正确的异常详细信息,即消息。

4

2 回答 2

6

据我了解,只要你有

<customErrors mode="off" />

在您的 web.config 中,消息将返回给客户端。你确定你有这个设置?

要显示与错误相关的消息,您需要将函数的名称作为页面方法调用的第三个参数:这个函数可以很简单:

function onfailure( result )
{
   alert( result.get_message() );
}

这就是我们所拥有的,它工作正常

于 2009-06-08T12:05:04.433 回答
1

<customErrors mode="off" />在 web.config的部分中设置后<system.web>,尝试这些函数以从 PageMethod 的 onfailure 中获取所有异常详细信息:

function onfailure(error) {                
    alert("Error: " + error.get_message() + "; " + 
        "Stack Trace: " + error.get_stackTrace() + "; " + 
        "Status Code: " + error.get_statusCode() + "; " + 
        "Exception Type: " + error.get_exceptionType() + "; " + 
        "Timed Out: " + error.get_timedOut());
}

我发现错误的状态代码比错误消息本身更有帮助。

于 2012-12-27T19:58:48.833 回答