Некоторая глупая ошибка, но это произошло, когда я хотел вызвать клиент с помощью службы на стороне сервера (дуплекс WCF):
Сообщение не может быть передано в течение выделенного времени ожидания обратного вызова wcf00:01:00, в окне передачи надежного канала не было места
Также что-то mysterious happened too
.В методе входа в систему, когда я вызывал службу, если имя пользователя и пароль были неправильными, я нахожу функцию обратного вызова отправителя, а затем вызываю метод GetError
для отправителя, чтобы показать логическую ошибку, такую как «Пользователь неправ».Это работает хорошо, но если пользователь и пароль верны и имеют доступ, я получил эту ошибку (то же самое для всех других методов на стороне клиента - во всех этих методах я отправляю больше данных, чем простые строки, я был отправлен geterror)!
Редактировать 2: Как я уже говорил в большинстве методов обратного вызова, я отправлял данные, такие как data-context (LINQ to SQL) data-class (список или одна строка).Так что это может быть моей проблемой или нет!
(Но это не первый раз, когда я использую WCF-дуплекс, также с отправкой структуры данных в методах обратного вызова, я так поражаюсь.)
Также после этой ошибки я получил эту ошибку,
Экран не смог обработать запрос от службы http://server:15450/service.svc катастрофический сбой
Редактировать 3: Конфигурация службы:
<system.serviceModel>
<services>
<service name="ContactServer.Business.ContactService"
behaviorConfiguration="ServiceBehavior">
<endpoint address=""
binding="wsDualHttpBinding"
contract="ContactServer.Business.IContactService">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"
name="MexBinding"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
и Конфигурация клиента
<system.serviceModel>
<bindings>
<wsDualHttpBinding>
<binding name="WSDualHttpBinding_ContactService" 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">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00" />
<security mode="Message">
<message clientCredentialType="Windows" negotiateServiceCredential="true"
algorithmSuite="Default" />
</security>
</binding>
</wsDualHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:1408/ContactService.svc"
binding="wsDualHttpBinding" bindingConfiguration="WSDualHttpBinding_ContactService"
contract="ServiceReference.ContactService" name="WSDualHttpBinding_ContactService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</client>
</system.serviceModel>
Дополнительная информация: Я использую .NET 3.5 и Visual Studio 2010Также после увеличения тайм-аута на стороне клиента я все еще получил ту же ошибку, with 00:01:00 Time
.Почему это произошло?