测试如下:
引发的异常:“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,如何是好~~。
该参考无用。
烦请读这句:
"
WebErrorHandler抓取了,但其作为internal类且HandleError(Exception error)返回false。试了试次序调整,然貌似并未集合顺序执行,该环节应该是个固定顺序。
"
实际情况就是内部本身有个WebErrorHandler,试了排序,以及删除该WebErrorHandler在ChannelDispatchers.ErrorHandlers都无效。无法抓取内部过程异常。问题中就是一个内部异常测试。用户过程异常测试很容易,写个接口直接throw这个是没问题的。
再请看看这个问题,不知道你是否知道怎么解决 https://q.cnblogs.com/q/104383/
@花飘水流兮: 由于缺少足够的上下文信息,我对这2个问题都不是很明白
@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。
@dudu:
看一下 https://www.cnblogs.com/xxj0316/p/9515795.html;
建议把这篇关了;
第一这个现在是可能涉嫌法律责任的,第二这行的人或多或少都是知道的那么发出来反而可能造成大规模不可用。
你是怎么捕获异常的?
– dudu 6年前@dudu: 跟这个参考类似,WebErrorHandler(这是个ms内置的)也大体差不多吧。
– 花飘水流兮 6年前