相关疑难解决方法(0)

42
推荐指数
3
解决办法
2万
查看次数

有没有办法在AJAX-web服务中捕获所有错误?

我想捕获ASP.NET Web服务中抛出的任何未处理的异常,但到目前为止我没有尝试过任何东西.

首先,HttpApplication.Error事件不会在Web服务上触发,所以这就是..

下一个方法是实现soap扩展,并将其添加到web.config中:

<soapExtensionTypes>
   <add type="Foo" priority="1" group="0" />
</soapExtensionTypes>
Run Code Online (Sandbox Code Playgroud)

但是,如果您通过JSON(我的网站专门执行)调用Web方法,则此方法无效.

我的下一个想法是为.asmx编写我自己的HttpHandler,它希望从System.Web.Script.Services.ScriptHandlerFactory派生出来并做一些聪明的事情.我还没试过这个.

有没有我错过的方法?谢谢!

麦克风

更新:

我将在这里总结一下可能的解决方案:

1)升级到WCF,这使得整个事情变得更加容易.

2)由于你不能子类或覆盖RestHandler类,你必须重新实现整个事物作为你自己的IHttpHandler或使用反射手动调用它的方法.由于RestHandler的源代码是公共的,只有大约500行,因此制作您自己的版本可能不是很大的工作量,但您需要负责维护它.我也没有意识到此代码涉及的任何许可限制.

3)您可以将方法包装在try/catch块中,或者使用LAMBDA表达式使此代码更清晰.它仍然需要您修改Web服务中的每个方法.

.net c# asp.net ajax json

15
推荐指数
1
解决办法
1818
查看次数

标签 统计

asp.net ×2

.net ×1

ajax ×1

asmx ×1

c# ×1

error-handling ×1

json ×1