相关疑难解决方法(0)

客户端CommunicationException,而服务正常工作

目前我正面临一个我不明白的问题.我有一个wcf客户端,它同时通过几个线程调用wcf服务(两者都在同一台机器上).有时,我会遇到众所周知的System.ServiceModel.CommunicationException

"收到对xxx的HTTP响应时发生错误.这可能是由于服务端点绑定不使用HTTP协议.这也可能是由于服务器中止HTTP请求上下文(可能是由于服务关闭) ).有关详细信息,请参阅服务器日志." ,

有时它有效.如果服务调用成功,它似乎是完全随机的.

请求非常小,只是一个(int,bool,enum)调用.该请求包含ca. 来自MSSQL数据库的300-500 KB记录.

我在网站上搜索了数百个解决方案,增加了超时值,缓冲区值,客户端和服务端的请求和响应大小值.我添加了[DataContract]和[DataMember]属性,因为它们丢失了.而且仍然没有变化.

我激活了完整的跟踪,只是为了看到一个非常奇怪的行为:

来自客户端的调用在本地停止并带有给定的异常 - 但是服务器处理它们并发送一个永远不会到达客户端的响应.检查给定跟踪的时间 - 客户端中止,服务器继续.

在跟踪中,我看到了这个图中的重量:

在此输入图像描述

请,任何人都可以帮助阻止这种无休止的搜索?

更新1:

我上传了客户端服务器配置,也许这​​有帮助.

更新2:

我们包含了ConnectionLimit(connection = 80)的config参数,正如Yahia所建议的那样.目前,似乎这解决了这个问题,但我们仍然试图重现错误.

更新3:

该死的.三个小时后,我再次看到相同的行为......我们有另一个建议:正如你所看到的,我们在客户端使用quartz.net,从20个线程开始.石英发动机执行的工作连接到我们的服务.现在我试着想象如果7个线程试图同时连接服务会发生什么.

更新4:

我们在注册表和配置中设置了tcp参数.重启后,没有任何变化:(

这些是注册表的变化:

HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters - TcpNumConnections = 65534
HKLM\System\CurrentControlSet\Services\Tcpip\Parameters - MaxUserPort = 65534
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings - MaxConnectionsPer1_0Server = 20
HKLM\Software\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_MAXCONNECTIONSPERSERVER - iexplore.exe = 20
HKLM\Software\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_MAXCONNECTIONSPERSERVER - MyClientsExeName.exe = 20

更新5:

客户跟踪 服务器跟踪

更新6:

[DataContract]
public class Currency
{
    [DataMember]
    public int Id { get; set; }

    [DataMember]
    public string …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net wcf exception

16
推荐指数
1
解决办法
6024
查看次数

标签 统计

.net ×1

asp.net ×1

c# ×1

exception ×1

wcf ×1