问题标签 [wcf-faults]

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 投票
1 回答
253 浏览

wcf - 为什么 WCF 在使用安全性时会导致通道出错?

背景:

我注意到在我的 WCF 服务中,当我抛出一个异常(一个普通的旧异常)时,客户端通道进入故障状态并且必须中止并重新创建,然后我才能在该通道上进行另一个调用。没关系。这就是它的意图。我得到它。因此,如果需要再次调用,我只需调用 abort() 并重新创建。

但是,仅当我使用启用了安全性的绑定时才会发生客户端通道故障。当我使用 basicHttpBinding 时,我可以在客户端上得到一个异常,然后继续使用 ServiceClient 对象而不告诉我它处于“故障状态”。

此外,当我关闭 wsHttpBinding 或 netTcpBinding 的安全性时,我可以在出现异常后重新使用通道。

问题:

绑定的安全性是什么导致通道出错,因此无法使用?

0 投票
1 回答
936 浏览

c# - 单元测试 > 检测到无法访问的代码警告

问题

编译器在返回行给我一个警告,并带有一条消息:

检测到无法访问的代码

问题

如何重构单元测试,以免收到编译器警告?也欢迎任何其他反馈。

代码

我有一个Bar包装 WCF 调用的类。如果在调用中的某个地方发生异常,则包装器将记录错误并引发 WCF 错误。这是课程:

我尝试对这个类进行单元测试,以确保我得到正确细节的错误。这是我的单元测试方法

0 投票
1 回答
1096 浏览

c# - 如何在 WCF 中返回有关异常/故障的标准消息

在我们的应用程序中,所有数据合约都有一个父级 -OperationResponseOperationResponse包含枚举(OperationState属性中的枚举类型Result),它代表调用结果(OkInvalidParamsError)。

如何在异常后覆盖 WCF 行为 - 不返回故障状态,但返回经典消息 OperationResponse 在我的情况下,但属性 Result = OperationState.Error?

编辑:我想,我走对了,我需要实现 IErrorHandler,但现在我迷路了,因为我不知道如何将错误消息设置为传出的错误消息......

Edit2:似乎没有解决方案是牢不可破的问题......我只发现没有像这个线程这样的解决方案的相同问题...... :(

0 投票
0 回答
31 浏览

c# - 服务仅在一种环境中处于故障状态异常

我正在使用我在测试的开发环境之一中使用的各种服务的相同 DLL。我确保配置是相同的,除了端点地址,在每种情况下它都是服务器名。

我在开发中没有任何问题。但是,在测试中,它总是说“服务处于故障状态”

  1. 我试图在 WCF 测试客户端中指向该 URL,我什至无法到达断点命中,因为它说服务处于故障状态。所以没有骰子。

  2. 我重新启动服务,回收应用程序池创建新的并指向服务。没运气

  3. 然后我在网络上进行了研究,每篇文章都说这可能是因为 .net 异常。我预计不会仅在一个环境中出现此异常(不令人信服),而 Dev 工作正常,并且来自 Visual Studio 和 localhost iI 的本地工作正常。

我同意我没有在代理级别捕获异常,也没有错误或任何日志记录。它只是一个简单的包装器,但 WCF。考虑到时间线,我什至不能添加尝试捕获或错误,因为我们是基线。

调试的任何想法可能是什么问题?

0 投票
0 回答
13 浏览

wcf - 如何自定义 WCF FaultException 的结构

我想使用 WCF在我的操作中抛出错误。格式如下图。但是,我无法通过使用 WCF 提供的 FaultException 来实现这一点。FaultException XML 结构不是我想要的。那我该怎么办?

0 投票
0 回答
21 浏览

wcf - 带有错误状态代码的 WCFFaultException 始终以 202 被接受的形式返回给客户端

在我们的应用程序中,如果需要,我们会抛出错误异常,如下所示:

抛出新的 WebFaultException(新的 RequestFaultInfo(errorMessage),System.Net.HttpStatusCode.BadRequest);

RequestFaultInfo 类如下:

但是,客户端总是得到状态码 202(已接受)。在这种情况下,客户端是同一服务器上的 Postman。

有没有人知道为什么会这样?