Tôi có một ứng dụng nhỏ sử dụng WCF để giao tiếp với máy chủ web. Chương trình này được 200 khách hàng sử dụng và mỗi khách hàng gửi khoảng 5-20 yêu cầu/phút.Kênh yêu cầu hết thời gian chờ trong khi chờ trả lời
Nhìn vào các bản ghi lỗi tôi thường nhận được:
Kênh yêu cầu time out trong khi chờ đợi một câu trả lời sau khi 00: 00: 59,9989999
Các yêu cầu được thực hiện như sau:
ClientService Client = new ClientService();
Client.Open();
Client.updateOnline(userID);
Client.Close();
Đây là app.config
<configuration>
<configSections>
</configSections>
<startup><supportedRuntime version="v2.0.50727"/></startup><system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_IClientService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
allowCookies="false">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00"
enabled="false" />
<security mode="None">
<transport clientCredentialType="Windows" proxyCredentialType="None"
realm="" />
<message clientCredentialType="Windows" negotiateServiceCredential="true" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="PATH TO SERVICE"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IClientService"
contract="IClientService" name="WSHttpBinding_IClientService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</client>
</system.serviceModel>
Trong số "nhiều cuộc gọi" mỗi ngày khoảng 200-800 không thành công. Và về n-1 là ok. Tôi rất bối rối về vấn đề này. Nhìn vào số liệu thống kê máy chủ, nó hầu như không tạo ra mồ hôi - mỗi yêu cầu mất < 2 giây để xử lý. Các dữ liệu nó gửi bao gồm "int" hoặc "dây rất nhỏ" - vì vậy, nó không phải do kích thước, nếu nó là - có phải là một thất bại phù hợp ..
Gợi ý?
bạn đang lưu trữ dịch vụ này trong IIS hoặc là nó được tổ chức bởi một dịch vụ cửa sổ hoặc một số ứng dụng khác? –
Bạn đã thử chơi với cài đặt hết thời gian chờ và báo giá trong tệp cấu hình chưa? – eulerfx
Trên thực tế, tôi đề nghị bật truy tìm WCF (như được giải thích tại đây: http://msdn.microsoft.com/en-us/library/ms733025.aspx) và xem lại các thông báo được ghi lại khi các lỗi này xuất hiện. –