powered by simpleCommunicator - 2.0.46     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Постоянный сеанс в службе WCF
7 сообщений из 7, страница 1 из 1
Постоянный сеанс в службе WCF
    #37905982
noligin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

У меня такой вопрос: есть постоянно работающая служба WCF, к ней подключаются дуплексные клиенты, и ждут сообщений от службы. Ожидание должно проходить по несколько часов. Но через некоторое время канал переходит в состояние Faulted и клиент отваливается от службы. Попробовал поэкспериментировать с конф файлами службы и клиента, но пока что это ничего не дает. Привожу содержание этих файлов. Посоветуйте что сделать чтобы сеанс был постоянным?

служба:
Код: xml
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.
<?xml version="1.0"?>
<configuration>
  <system.serviceModel>
    <bindings>
      <netTcpBinding>
        <binding closeTimeout="24:00:00"/>
      </netTcpBinding>
    </bindings>
    <services>
      <service name="MyService" behaviorConfiguration="MyServiceMEXBehavior">
        <endpoint address=""
                  binding="netTcpBinding"
                  contract="MyService.MyContract"/>
        <endpoint address="mex"
                  binding="mexHttpBinding"
                  contract="IMetadataExchange"/>
        <host>
          <baseAddresses>
            <add baseAddress="net.tcp://localhost:8000/MyService"/>
            <add baseAddress="http://localhost:8080/MyService"/>
          </baseAddresses>
        </host>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="MyServiceMEXBehavior">
          <serviceMetadata httpGetEnabled="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>



Клиент
Код: xml
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.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <bindings>
      <netTcpBinding>
        <binding closeTimeout="24:00:00"
            openTimeout="24:00:00" receiveTimeout="24:00:00" sendTimeout="24:00:00"
            transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"
            hostNameComparisonMode="StrongWildcard" listenBacklog="10"
            maxBufferPoolSize="524288" maxBufferSize="65536" maxConnections="10"
            maxReceivedMessageSize="65536">
          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
              maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <reliableSession ordered="true" inactivityTimeout="24:00:00"
              enabled="false" />
          <security mode="Transport">
            <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
            <message clientCredentialType="Windows" />
          </security>
        </binding>
      </netTcpBinding>
    </bindings>
    <client>
      <endpoint address="net.tcp://localhost:8000/MyService" binding="netTcpBinding"
          contract="MyService.MyContract"
          name="NetTcpBinding_MyContract">
      </endpoint>
    </client>
  </system.serviceModel>
</configuration>
...
Рейтинг: 0 / 0
Постоянный сеанс в службе WCF
    #37906737
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noliginПосоветуйте что сделать чтобы сеанс был постоянным?
есть мнение что тебе это не нужно

noliginПосоветуйте что сделать чтобы сеанс был постоянным?
периодически пингуй
...
Рейтинг: 0 / 0
Постоянный сеанс в службе WCF
    #37906747
noligin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pationесть мнение что тебе это не нужно
мне это все таки нужно. Нужно чтобы подключенные к службе клиенты получали сообщения об изменениях состояния службы в онлайн режиме.

pationпериодически пингуй
Это конечно вариант, но хотелось бы сделать по уму.
...
Рейтинг: 0 / 0
Постоянный сеанс в службе WCF
    #37906843
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noligin[Нужно чтобы подключенные к службе клиенты получали сообщения об изменениях состояния службы в онлайн режиме.
для этого не нужно
noliginчтобы сеанс был постоянным
...
Рейтинг: 0 / 0
Постоянный сеанс в службе WCF
    #37906888
noligin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а что для этого нужно?
...
Рейтинг: 0 / 0
Постоянный сеанс в службе WCF
    #37907291
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Постоянный сеанс в службе WCF
    #37907600
noligin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подписку я уже реализовал. Дело в том что при простое клиент отключается и тогда получается что некуда просто рассылать сообщения. Вот что вычитал в MSDN
MSDNКак правило, сеанс завершается, когда клиент закрывает прокси. Но если клиенту не удается корректно закрыть прокси или если возникает проблема со связью, каждый сеанс простаивает определенное время (по умолчанию 10 минут), а затем автоматически завершается. Когда сеанс завершается из-за отсутствия активности в течение заданного времени, клиент, попытавшийся использовать прокси, получает исключение CommunicationObjectFaultedException.

Для клиента и сервиса можно определить другое время ожидания в параметрах привязки. Привязки, поддерживающие сеанс надежного транспортного уровня, имеют свойство ReliableSession, в свою очередь содержащее свойство InactivityTimeout, которое служит для задания тайм-аута при простое.
Код: xml
1.
2.
3.
4.
5.
6.
<netTcpBinding>
    <binding name="TCPSession">
        <reliableSession enabled="true"
            inactivityTimeout="00:25:00"/>
    </binding>
</netTcpBinding>


Только это почему то не работает. Я прошу помочь разобраться с настройками службы или клиентов, чтобы они не отключались при простое
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Постоянный сеанс в службе WCF
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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