powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Какой еще таймаут надо указать?
5 сообщений из 5, страница 1 из 1
Какой еще таймаут надо указать?
    #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
Какой еще таймаут надо указать?
    #36859514
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hstas,
->
...
Рейтинг: 0 / 0
Какой еще таймаут надо указать?
    #36867406
hstas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiKhstas,
->

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

System.Net.WebException: The operation has timed out

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

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

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


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