问题标签 [ierrorhandler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
318 浏览

json - 使用 IErrorHandler 中的 WebFaultException

如果我从 中派生所有异常WebFaultException,并直接从我的服务中抛出它们,则设置中的 StatusCode 将WebFaultException传递给客户端。我宁愿不必这样做,因为我宁愿NotImplementedException从我的代码中抛出像 , 这样的通用异常。

我已经设置了一个 IErrorHandler,期望我能够捕获像这样NotImplementedException的异常,然后只转换到WebFaultException那里。

我的代码如下所示:

单步执行时,我看到我正在访问 ProvideFault 中的代码,但返回给客户端的状态是 400,而不是 501。此外,正文是:

  1. 为什么没有返回正确的状态码?
  2. 为什么json中没有body?

补充:我已经尝试过将 AutomaticFormatSelectionEnabled = false 设置为 webhttpbehavior 的建议,但它仍然不起作用。我是自我托管的,但我认为这不会有所作为。这是我用来设置服务的代码:

0 投票
2 回答
471 浏览

json - WCF json错误处理程序导致异常

我在端点中配置了两种行为:

  1. 一种是 json 序列化,它与这里的示例基本非常相似。重要的是以下几点:
  1. 另一个用于错误处理。这样当抛出异常时,将向客户端发送一条 json 格式的消息。代码取自此处(答案以:“这是基于上面的一些信息的完整解决方案:”)。

当我只使用行为 1 时,一切正常。当我添加第二个行为时,我得到以下异常:

{"ExceptionType":"System.InvalidOperationException","Message":"传入的消息具有意外的消息格式 'Raw'。操作的预期消息格式是 'Xml'、'Json'。这可能是因为 WebContentTypeMapper尚未在绑定上配置。有关详细信息,请参阅 WebContentTypeMapper 的文档。"}

这是我的 web.config 的样子:

有任何想法吗?

0 投票
0 回答
463 浏览

c# - WCF 添加服务时更新配置文件失败

我在默认服务行为中添加了一个服务行为扩展,用于记录未处理的异常,它按预期工作。

但是,当我尝试将新服务添加到项目中时,出现以下错误:

更新配置文件失败

无法加载为扩展“UnhandledExceptions”注册的类型“MyApp.WebServices.Behaviours.Extensions.UnhandledExceptionExtention, MyApp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”。Web.config 第 XX 行

为了解决这个问题;我注释掉服务行为中的扩展用法,添加服务并撤消配置更改。

尽管这是一个可行的解决方案,但我宁愿不必依赖我自己和其他开发人员记住看似不必要的过程。

有没有办法解决这个问题?

0 投票
0 回答
101 浏览

wcf - WCF IErrorHandle 异步问题

据我所知,HandleError 应该针对服务异步运行,但以下代码证明它在同一个线程上运行服务的作用:两种方法都将 4 显示为线程号,更重要的是 HandleError 会挂起服务。

0 投票
1 回答
45 浏览

twitter-bootstrap - 几秒钟后引导警报消失

我尝试使用 Bootstrap 和错误处理创建一个简单的表单。我创建了一个表单,提交后点击错误应该出现,但错误只出现几秒钟......

这里的代码:

http://codebin.org/view/8e8b46ae

谢谢 :)

0 投票
2 回答
950 浏览

c# - 如何将对象注入 WCF 的 IErrorHandler?

我有这种情况:我有 WCF 服务。我正在MyErrorHandler使用已实现的接口处理所有异常IErrorHandler。整个工作代码如下。

我想做什么,但不知道如何:我想将一个对象(例如 ILogger)注入到MyErrorHandler类中。这基本上意味着我必须在这里注入一个对象:[GlobalErrorHandlerBehaviour(typeof(MyErrorHandler))]. 你能帮我解决这个问题吗?

顺便提一句。我想使用 DI 并在IErrorHandler我不想使用private static readonly记录器的方法中注入一些东西。

0 投票
1 回答
111 浏览

c# - 在 IIS 中托管时将依赖项注入 IErrorHandler

我刚刚阅读了这个很好的答案,如何将依赖项注入 WCF 服务。解决方案非常简洁,但我有一个问题。

此答案中的解决方案使用自托管(控制台应用程序),因此可以实现自己的ServiceHostand ErrorHandlerand do:

我的问题是,如何在 ASP.NET Web 应用程序主机中执行此操作?我试图在通过 IIS 托管时向服务中注入一些东西。任何帮助都会很棒!

0 投票
3 回答
1268 浏览

c# - 当 HTTP 状态码为 401 Unauthorized 时,IErrorHandler 返回错误的消息体

我已经实现了 IErrorHandler 来处理我的 restful WCF 服务的构造函数中抛出的授权异常。当捕获到一般异常时,我的自定义类型按预期返回,但 ContentType 标头不正确。

但是,当错误处理程序尝试返回 401 Unauthorized http 状态代码时,消息正文将被覆盖为默认类型,但 ContentType 标头应如此。

显然这里出了点问题,但我不确定是什么。

如何实现 IErrorHandler 以使其在 json 中返回具有正确标头的自定义类型?

BaseDataResponseContract 对象:

这是我要返回的对象。我的应用程序中的所有其他对象都继承自该对象。当抛出异常时,我们真正关心的是 http 状态码和错误消息。

IErrorHandler 实现(为简洁起见未显示日志记录):

IServiceBehavior 实现:

网络配置:

最后,我在使用 WebFaultException 时看到了类似的行为。我的想法是,这是一些深埋的 .Net 恶作剧的结果。我选择实现 IErrorHandler 以便我可以捕获任何其他可能无法处理的异常。

参考:

https://msdn.microsoft.com/en-us/library/system.servicemodel.dispatcher.ierrorhandler(v=vs.100).aspx

http://www.brainthud.com/cards/5218/25441/which-four-behavior-interfaces-exist-for-interacting-with-a-service-or-client-description-what-methods-do-they-实施和

其他示例:

IErrorHandler 似乎没有处理我在 WCF 中的错误 .. 有什么想法吗?

如何使自定义 WCF 错误处理程序返回带有非 OK http 代码的 JSON 响应?

如何为 HttpClient 请求设置 Content-Type 标头?

0 投票
0 回答
107 浏览

c# - WCF:IErrorHandler 实现未提供指定的通用错误

我已经实现ProvideFaultIErrorHandler接口的方法如下:

然后我将此实现添加到每个调用ChannelDispatcherBase的另一个实现中。我的服务实现用这个属性装饰,并且还具有:IServiceBehaviorGlobalErrorBehaviorAttributeFaultContractAttribute

但是对服务实现中的方法的测试总是失败,抱怨收到的错误不是类型FaultException<ResponseModel>,而是FaultException

为什么我收到FaultException而不是FaultException<ResponseModel>在客户端?

0 投票
1 回答
767 浏览

c# - 在按钮单击事件上实现 IDataErrorInfo

我正在尝试使用绑定实现对文本框的按钮单击验证。基本上,当我单击提交时,我的文本框没有变红并给我“必需”错误,这是我向其中添加文本的时候。

我是验证的新手,并且在沮丧中断断续续地看了将近一个星期。我想我的回答可能和propertychangedevent有关?但我不确定并求助于专业人士。

必须感谢所有和任何有关此的帮助。

这是我的模型类:

这是我的按钮 + 文本框的 XAML;

这是我的代码;