问题标签 [communicationexception]

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 回答
2820 浏览

c# - 通信异常。WCF


我对 WCF 有疑问。
第一个应用程序是我从站点this编写的示例。它运作良好。
我需要制作一个应用程序来从数据库的服务器列表中传输对象。但是当我得到客户列表时,以下内容CommunicationException

接收到 (localhost:8080) 的 HTTP 响应时出错。这可能是由于服务端点绑定未使用 HTTP 协议。这也可能是由于服务器中止了 HTTP 请求上下文(可能是由于服务关闭)。有关更多详细信息,请参阅服务器日志。

服务器运行良好,或者我不明白的东西。
如果你需要关于项目的信息(代码),我会给它


对不起我的英语不好。

UPD:配置:

服务器代码:

UPD2:
失败:

MobilePostClientAdd Service Reference.

UPD3:IMobilePosts:

移动帖子:

存储库工作正常。

0 投票
1 回答
1362 浏览

wcf - WCF 服务 - 客户端接收 CommunicationException

目前我们连接到 WCF 服务。目前我收到间歇性的 CommunicationExceptions。

-> 异常 (CommunicationException) System.ServiceModel.CommunicationException:服务器返回了无效的 SOAP 故障。有关更多详细信息,请参阅 InnerException。---> System.Xml.XmlException: 读取 XML 数据时已超出最大字符串内容长度配额 (8192)。可以通过更改创建 XML 阅读器时使用的 XmlDictionaryReaderQuotas 对象的 MaxStringContentLength 属性来增加此配额。

我已经更新了我的配置文件,将 MaxStringContentLength 设置为 2147483647

仍然间歇性地收到这些错误。

关于可能导致它们的任何建议?

提前致谢, 菲奥娜

更新 以下是配置文件中的绑定:

0 投票
1 回答
752 浏览

c# - 运行一段时间后与 ServiceKnownType 相关的 WCF CommunicationException(或 IIS 应用程序池回收?)

我有一个 WCF 服务,托管在 IIS 中。该服务由具有接口类型作为参数或返回类型的通用接口定义,因此我们使用 ServiceKnownType 属性来定义所述接口在运行时的可用实现。

这一切似乎都运行良好,但是有时我们会看到对这些服务的所有请求都失败并出现 CommunicationException;“尝试序列化参数http://tempuri.org/时出错:arg。InnerException消息是 'Type ' MyNamespace.SomeInterfaceImplementation ',数据合同名称为 'SomeInterfaceImplementation:http://schemas.datacontract.org/2004 /07/MyNamespace' 不是预期的。将任何静态未知的类型添加到已知类型列表中 - 例如,通过使用 KnownTypeAttribute 属性或将它们添加到传递给 DataContractSerializer 的已知类型列表中。'。请参阅 InnerException更多细节。

我无法可靠地重现此错误,但它经常在服务运行一段时间后出现(例如,在周末)。我最初推测这是由于 IIS 应用程序池回收而发生的,但是手动回收或按小间隔(例如 2 分钟)安排的回收无法重现该问题。

通过从“ServiceKnownTypes”的提供者中排除“ MyNamespace.MyType ”,我能够可靠地重现异常,但这并不能真正告诉我为什么这首先会间歇性发生。

以下代码段显示了服务声明。它是针对不同实现类型的通用服务. 请注意,产生 CommunicationException 的是操作参数“ arg ”。

现在,为ISomeInterfaceArgumentType提供已知类型的 KnownTypesCache 的实现是这样的;

基本上,这个全局静态缓存会查询 AppDomain 中所有加载的程序集,以查找“IKnownTypesPublisher”的实现者,这反过来又为每个程序集提供可用的序列化类型。因此,每个程序集有一个 IKnownTypesPublisher,它只负责识别该程序集中的类型,并且 KnownTypesCache 简单地聚合所有这些并在运行时返回给 DataContractSerializer。

正如我所提到的,这种方法似乎在 99% 的情况下都能正常工作。然后我无法识别,它停止工作,只能通过调用iisreset来解决。

我现在很困惑,我尝试了各种解决方案,但是因为我只能等到星期一的第一件事才能可靠地重现这个错误,所以这有点困难!

我剩下的最后一个想法是,在所有程序集加载到 AppDomain 之前,可能会调用静态 KnownTypesCache 构造函数,因此缓存在实例的生命周期内将是空的......?

0 投票
1 回答
1932 浏览

c# - Dynamics CRM 导致 CommunicationException

我正在使用 MS Dynamics CRM api 从中获取数据(超过 5000 条记录)。

我正在使用基于 XML 的查询来获取数据

有时它会起作用,并且大多数时候它会从日志中抛出异常,我得到了这个很长的异常。

接收对https://orgno.api.crm.dynamics.com/XRMServices/2011/Organization.svc的 HTTP 响应时出错。这可能是由于服务端点绑定未使用 HTTP 协议。这也可能是由于服务器中止了 HTTP 请求上下文(可能是由于服务关闭)。有关更多详细信息,请参阅服务器日志。---> System.ServiceModel.CommunicationException: 接收到https://orgno.api.crm.dynamics.com/XRMServices/2011/Organization.svc的 HTTP 响应时出错. 这可能是由于服务端点绑定未使用 HTTP 协议。这也可能是由于服务器中止了 HTTP 请求上下文(可能是由于服务关闭)。有关更多详细信息,请参阅服务器日志。---> System.Net.WebException:底层连接已关闭:接收时发生意外错误。---> System.IO.IOException: Unable to read data from the transport connection: 一个现有的连接被远程主机强行关闭。---> System.Net.Sockets.SocketException: 远程主机在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) 处强制关闭现有连接 --- End of inner异常堆栈跟踪---在 System.Net.FixedSizeReader 的 System.Net.Sockets.NetworkStream.Read(Byte[] 缓冲区,Int32 偏移量,Int32 大小)。

我不知道为什么会这样?

0 投票
3 回答
2972 浏览

wcf - 从实体框架返回结果时,WCF 调用失败

我使用实体框架和 WCF 创建了一个简单的测试解决方案。我在服务合同中只有一个函数,称为GetAllCustomers()从数据库中检索客户并将其返回给客户端。客户端应用程序调用该函数并将客户名称写入控制台。

当我GetAllCustomers()通过代理从客户端调用时,我收到一条CommunicationException消息,

接收对 的 HTTP 响应时出错http://localhost:8000/Service1。这可能是由于服务端点绑定未使用 HTTP 协议。这也可能是由于服务器中止了 HTTP 请求上下文(可能是由于服务关闭)。有关更多详细信息,请参阅服务器日志。

内部例外是System.Net.WebException

底层连接已关闭:接收时发生意外错误。

内部异常的下一级是System.IO.IOException

无法从传输连接读取数据:现有连接被远程主机强行关闭。

最后的内部异常是System.Net.Sockets.SocketException

现有连接被远程主机强行关闭

这是客户端代码:

这是主机应用程序代码:

这是该函数的服务库代码:

奇怪的是,如果我通过用下面注释掉的代码替换 foreach 块来绕过数据库,它会很好用!

我首先认为这可能是数据库查询时间过长的超时问题。但是,我的测试代码在那里有 45 秒的睡眠,它仍然可以将数据返回给客户端。原始代码仅在大约 3 秒后给出异常。

此外,如果我通过直接实例化 WCF 服务而不是通过端点/代理来调用原始函数(使用 foreach 块),它也可以正常运行并返回数据库中的所有客户。

最后,我认为可能是返回的数据集太大的问题,所以我修改了foreach块并在将前5个客户添加到结果后插入了一个break语句,我仍然得到了异常。

那么,还有什么可能导致这种情况?

0 投票
1 回答
322 浏览

wcf - WCF CommunicationException:了解根本原因

我正在编写一个连接到 WCF 服务的应用程序。当我在客户端收到 CommunicationException 时,我需要了解问题是在服务端还是由于无效的客户端配置。

0 投票
4 回答
27080 浏览

java - CommunicationException [根异常为 ConnectException: Connection timed out]

在尝试连接 Active Directory 时,我偶尔会遇到此异常。

这是我的代码:

在此行中获取连接超时异常ctx = new InitialDirContext(env);。它不会每次都发生,但经常发生。

请告诉我,如何摆脱这个问题?

0 投票
1 回答
4086 浏览

c# - 服务器调用期间的 WCF 通信异常

我正在用这个在黑暗中拍摄,但我一直遇到一个问题,我希望有人可能以前遇到过......我的客户端进行了服务器调用,它几乎只是从 Sql 服务器中获取数据DB 并将其返回给我的客户端,但有时客户端从未收到来自服务器的响应。我输入了一堆登录信息并执行了服务器端代码的最后一行,但客户端仍然没有收到响应,结果卡在“正在处理”...我添加了一个 WCF 跟踪并使用服务对其进行监视跟踪查看器。

WCF 活动跟踪

我在包含以下文本的活动日志中看到异常:

我想没有人以前见过这样的东西,并且可以给我一些关于如何修复它的建议?任何信息将不胜感激。

谢谢!

0 投票
1 回答
378 浏览

.net - 使用双工通道未处理的通信异常

我正在使用 WCF 双工通道进行服务回调交互,此外,我在不同的端口上使用了另一个服务。一段时间后,双工通道出现故障,但是当我尝试使用它时出现通信异常(我不知道通道何时出现故障并且我无法使用 SessionFaulted 事件)。接收超时是无限的,setTimeout 是 30 秒。

问题是我找不到处理这个异常的方法,没有堆栈跟踪,我无法在任何地方捕获它。

我使用带有行为扩展的诊断/错误处理来进行调查,但没有运气。

例外:

有任何想法吗?

0 投票
1 回答
1781 浏览

c# - 解析 WCF ProtocolException 时的 System.ServiceModel.CommunicationException

我正在尝试使用此页面中推荐的代码http://blogs.msdn.com/b/nathana/archive/2011/03/31/deciphering-a-soap-fault-with-a-400-status-code .aspx如下:

我正在使用 VS 2012 和使用 WCF 的 .NET 4.5。当应用程序收到 400 Bad Request 并将 ProtocolException 传递给 ParseProtocolException 时,它会在此行引发异常:

与 System.ServiceModel.CommunicationException:“缓冲 XML 内容所需的大小超出了缓冲区配额。”

stream.Length = 2,704 字节,不是很大。我尝试了此站点http://blogs.msdn.com/b/drnick/archive/2007/08/07/increasing-the-maximum-fault-size.aspx上建议的解决方案。但是,即使 MaxFaultSize = 1 Mb,也会出现相同的错误。

而不是这一行:

我试过这个:

它将所有配额设置为其最大值(Int32.MaxValue);但是,我在 CreateMessage 调用中仍然遇到同样的错误。

System.Net.WebException 的示例响应流如下:

使用我在 F# Interactive 中编写的异步网络爬虫,我发现某些命名空间 url 无法解析。我纠正了错误的错误,然后再次运行爬虫来计算命名空间页面的长度。总共是 715,965 字节,远小于 XmlDictionaryReaderQuotas 中所有配额的 Int32.MaxValue。也许 XmlDictionaryReader 有错误,或者它返回的错误不是真正的问题?

我最终通过删除 SOAP-ENV:Body 中实际未使用的命名空间定义(即,仅保留 Subcode 元素中使用的 xmlns:ter)使 Message 创建工作。但是,当然,这并不能真正解决问题,因为服务正在生成 SOAP 错误;而且我无法更改服务实现(它是第 3 方设备 - Onvif 相机)。

而且,我不能再增加配额了。那么,如何处理这个异常呢?