Я получаю следующее исключение The operation has timed out
при вызове службы WCF REST.Операция завершена WCF Rest
У меня в основном есть проект веб-службы WCF и веб-сайт, который ссылается на скомпилированную сборку WCF. Веб-сервис работает в обаянии, поэтому моя проблема не сводится к неверному определению привязки, конечной точки или сервиса в моем web.config.
Проблема возникает только в том случае, если я пытаюсь вставить большой объем данных.
web.config, содержит следующую информацию:
<system.web>
<compilation debug="true" targetFramework="4.0"/>
<httpRuntime enable="true" executionTimeout="100000"
maxRequestLength="2147483647"/>
</system.web>
<bindings>
<webHttpBinding>
<binding maxReceivedMessageSize="2147483647"
maxBufferSize="2147483647"
receiveTimeout="00:10:00"
sendTimeout="00:10:00">
<readerQuotas maxStringContentLength="2147483647"/>
</binding>
</webHttpBinding>
</bindings>
Мой WCF веб-службы не упоминается в (службы Windows) проект, как я использую обертку (SDK), который ухаживает делает все соответствующие HTTP-запросы и конвертировать объекты в json и наоборот. Весь HTTP-запрос выполняется через WebClient, который называется sdk. В этом случае:
byte[] returnBuffer = await client.UploadDataTaskAsync(uriString,
"POST", requestBuffer);
В то время как это происходит на живом сайте (Хлоп !!), я могу легко воспроизвести проблему, поставив точку останова в моем веб-службы и позволяя ему висеть в течение 90 секунд или около того, а затем если я попытаюсь продолжить переход, возникает конкретная ошибка, и пока она пытается продолжить выполнение оставшегося кода внутри функции, исключение возвращается клиенту.
Я уже несколько часов искал эту проблему, но я никуда не денусь. Мой веб-сервис по-прежнему не работает по умолчанию 90 секунд.
Еще одна вещь, о которой мне интересно. Я читал много разных статей, говоря о том, что клиентское приложение, в моем случае, моя служба Windows должна иметь привязку, конечную точку и т. Д. Информацию в app.config. У меня нет никого, и я никогда не нуждался в нем до сих пор. Должен ли я заглянуть в это? На самом деле кажется, что тайм-аут происходит в веб-службе, а не на стороне клиента.
Любые идеи?
Спасибо.
UPDATE:
Я добавил дополнительную информацию о моем web.config (т.е. службы & определения поведения):
<services>
<service name="MyCompany.Web.Services.WebDataService"
behaviorConfiguration="WebDataServiceBehaviour">
<endpoint address="" binding="webHttpBinding"
contract="MyCompany.Web.Services.IWebDataService"
behaviorConfiguration="webBehaviour">
</endpoint>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="WebDataServiceBehaviour">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="webBehaviour">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
Имя вашего Binding '<связывании имя = "myWebHttpBinding" ...> ... ' и использовать его как это: <адрес конечной точки = "" привязки = "WebHttpBinding" bindingConfiguration = "myWebHttpBinding" Контракт "MyCompany .Web.Services.IWebDataService "/> – adPartage