Có thể là một câu hỏi ngớ ngẩn, nhưng mọi thứ trong WCF có vẻ phức tạp hơn nhiều so với asmx, làm cách nào để tăng thời gian chờ của dịch vụ svc?
Đây là những gì tôi có cho đến nay:
<bindings>
<basicHttpBinding>
<binding name="IncreasedTimeout"
openTimeout="12:00:00"
receiveTimeout="12:00:00" closeTimeout="12:00:00"
sendTimeout="12:00:00">
</binding>
</basicHttpBinding>
</bindings>
Và sau đó điểm cuối của tôi được ánh xạ như thế này:
<endpoint address=""
binding="basicHttpBinding" bindingConfiguration="IncreasedTimeout"
contract="ServiceLibrary.IDownloads">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
Lỗi chính xác mà tôi đang gặp phải:
Kênh yêu cầu đã hết thời gian chờ trả lời sau 00: 00: 59.9990000. Tăng giá trị thời gian chờ được chuyển cho cuộc gọi Yêu cầu hoặc tăng giá trị Thời gian chờ gửi trên Ràng buộc. Thời gian được phân bổ cho hoạt động này có thể là một phần của thời gian chờ lâu hơn.
Trong Máy khách kiểm tra WCF, có một biểu tượng cấu hình chứa cấu hình thời gian chạy của dịch vụ của tôi:
Như bạn có thể thấy nó không giống với các giá trị mà tôi đã đặt cho nó? Tôi đang làm gì sai?
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IDownloads" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="">
<extendedProtectionPolicy policyEnforcement="Never" />
</transport>
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>