首页新闻招聘找找看知识库

获取WCF内部异常

0
悬赏园豆:5 [已关闭问题] 关闭于 2018-03-16 13:30

测试如下:

引发的异常:“System.InvalidOperationException”(位于 System.ServiceModel.Web.dll 中)
不允许传入请求(URI 为“https://localhost:29998/ShopApi/Auth/User/7783822576e34458ad902fd5064c6275”)的 HTTP 方法“GET”。

补充:示例 uri 本身是post 我通过get去制造的Exception。

 

用户过程异常花了点时间搞定了,但内部异常(如上面的异常)并未捕获到。

 应该是WebErrorHandler抓取了,但其作为internal类且HandleError(Exception error)返回false。试了试次序调整,然貌似并未集合顺序执行,该环节应该是个固定顺序。

已无方法抓到该Exception,如何是好~~。

花飘水流兮的主页 花飘水流兮 | 大侠五级 | 园豆:5790
提问于:2018-03-13 10:48

你是怎么捕获异常的?

dudu 3个月前

@dudu: 跟这个参考类似,WebErrorHandler(这是个ms内置的)也大体差不多吧。

花飘水流兮 3个月前
< >
分享
所有回答(1)
0
dudu | 园豆:37657 (高人七级) | 2018-03-13 11:38

该参考无用。

烦请读这句:

"

 WebErrorHandler抓取了,但其作为internal类且HandleError(Exception error)返回false。试了试次序调整,然貌似并未集合顺序执行,该环节应该是个固定顺序。

"

实际情况就是内部本身有个WebErrorHandler,试了排序,以及删除该WebErrorHandler在ChannelDispatchers.ErrorHandlers都无效。无法抓取内部过程异常。问题中就是一个内部异常测试。用户过程异常测试很容易,写个接口直接throw这个是没问题的。

 

再请看看这个问题,不知道你是否知道怎么解决 https://q.cnblogs.com/q/104383/

支持(0) 反对(0) 花飘水流兮 | 园豆:5790 (大侠五级) | 2018-03-13 13:22

@花飘水流兮: 由于缺少足够的上下文信息,我对这2个问题都不是很明白

支持(0) 反对(0) dudu | 园豆:37657 (高人七级) | 2018-03-13 13:46

@dudu: 关于证书:

new SecurityUserApiService(typeof(ShopApi), new Uri($"https://{ConfigurationManager.AppSettings["ShopApiUri"]}/"), PfxShop);

PfxShop是X509Certificate2证书,这个证书是通过文件创建的,本身启动都无问题,但如果不用

httpcfg set ssl -i 0.0.0.0:996 -h XXXXXXXXXXXXXXXXXXXXXX

该服务就无法使用。也就是说估计程序仍然通过操作系统证书管理完成的  安全链路层,原来是想直接通过code new X509Certificate2完成的。

 

关于Error,这里已经提到WebErrorHandler,这是个internal class,不报太大希望,即使有接口估计也比较生僻,而且并不是接口容器顺序式执行,内部异常应该是它拦截了的,你看看源代码估计就清楚我说的什么了。

补充:示例 uri 本身是post 我通过get去制造的Exception。

支持(0) 反对(0) 花飘水流兮 | 园豆:5790 (大侠五级) | 2018-03-13 14:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册