Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Какой еще таймаут надо указать? / 5 сообщений из 5, страница 1 из 1
22.09.2010, 10:45
    #36859443
hstas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой еще таймаут надо указать?
Суть проблемы такова.
Есть WCF-сервис. Хостится на IIS 7.0
Web клиент дергает метод сервиса, и если он не спел завершится за 1.5 минуты (приблизительно), то вылетает ошибка

Код: plaintext
System.Net.WebException: Время ожидания операции истекло

Просмотрел config файлы и клиентский и серверный, вроде бы все таймауты увеличены по длительности.

А может это надо в IIS что-то настраивать? Рубит не WCF, а IIS?

Куда копать, подскажите пожалуйста.

Для примера - вот оба конфига


Сервер
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
<system.serviceModel>
 <bindings>
   <basicHttpBinding>
    <binding name="basicBinding" closeTimeout="23:59:59" openTimeout="23:59:59"
     receiveTimeout="24.20:31:23.6470000" sendTimeout="23:59:59" maxBufferSize="67108864"
     maxReceivedMessageSize="67108864">
     <readerQuotas maxDepth="32" maxStringContentLength="5242880"
      maxArrayLength="200000" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
     <security mode="TransportCredentialOnly">
      <transport clientCredentialType="Windows" />
     </security>
    </binding>
   </basicHttpBinding>
  </bindings>
  <services>
   <service behaviorConfiguration="basicBehavior" name="LcrWebServer.LcrWebService">
    <endpoint address="" behaviorConfiguration="endpointBehavior"
     binding="basicHttpBinding" bindingConfiguration="basicBinding"
     contract="LcrWebServer.ILcrWebService">
     <identity>
      <dns value="localhost" />
     </identity>
    </endpoint>
    <host>
     <timeouts closeTimeout="00:03:00" openTimeout="00:05:00" />
    </host>
   </service>
  </services>
  <behaviors>
   <endpointBehaviors>
    <behavior name="endpointBehavior" />
   </endpointBehaviors>
   <serviceBehaviors>
    <behavior name="basicBehavior">
     <serviceMetadata httpGetEnabled="true" />
     <serviceDebug httpsHelpPageEnabled="false" includeExceptionDetailInFaults="true" />
     <serviceAuthorization impersonateCallerForAllOperations="false" />
    </behavior>
   </serviceBehaviors>
  </behaviors>
	</system.serviceModel>


Клиент:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
 <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="basicHttpBinding" closeTimeout="23:59:59" openTimeout="23:59:59"
          receiveTimeout="24.20:31:23.6470000" sendTimeout="23:59:59"
          maxReceivedMessageSize="67108864">
          <readerQuotas maxDepth="32" maxStringContentLength="5242880"
            maxArrayLength="200000" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <security mode="None">
            <transport clientCredentialType="None" />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="http://localhost/LcrWebService/LcrWebService.svc"
        binding="basicHttpBinding" bindingConfiguration="basicHttpBinding"
        contract="LcrServiceReference.LcrWebService" name="basicHttpBinding_ILcrWebService" />
    </client>
  </system.serviceModel>
...
Рейтинг: 0 / 0
22.09.2010, 11:09
    #36859514
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой еще таймаут надо указать?
hstas,
->
...
Рейтинг: 0 / 0
27.09.2010, 10:11
    #36867406
hstas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой еще таймаут надо указать?
AlexeiKhstas,
->

Алексей, я почитал статью, это несколько не мой случай. У меня нет проблемы с кол-ом подключений и вытекающими из нее таймаутами.
У меня не хватает времени для выполнения метода даже когда 1-ин пользователь.
Методы которые укладываются в 1.5 минуты (грубо) пролезают. Если метод не успевает - то получаю

System.Net.WebException: The operation has timed out

Увеличение ExecutionTimeout настойках IIS - не помогает.
...
Рейтинг: 0 / 0
27.09.2010, 14:05
    #36867958
hstas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой еще таймаут надо указать?
Помогло, если сделать так:

Код: plaintext
1.
2.
LcrWebService pSrv = new LcrWebService();		
pSrv.Credentials = System.Net.CredentialCache.DefaultCredentials;
pSrv.Timeout =  900000 ;   //Таймаут в миллисекундах

А как этот таймаут задать через web.config ?
...
Рейтинг: 0 / 0
27.09.2010, 15:08
    #36868119
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой еще таймаут надо указать?
Странно, ибо это всё через обычный OperationTimeout должно настраиваться.
...
Рейтинг: 0 / 0
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Какой еще таймаут надо указать? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]