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

У меня такой вопрос: есть постоянно работающая служба 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
07.08.2012, 09:32
    #37906737
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянный сеанс в службе WCF
noliginПосоветуйте что сделать чтобы сеанс был постоянным?
есть мнение что тебе это не нужно

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

pationпериодически пингуй
Это конечно вариант, но хотелось бы сделать по уму.
...
Рейтинг: 0 / 0
07.08.2012, 10:40
    #37906843
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянный сеанс в службе WCF
noligin[Нужно чтобы подключенные к службе клиенты получали сообщения об изменениях состояния службы в онлайн режиме.
для этого не нужно
noliginчтобы сеанс был постоянным
...
Рейтинг: 0 / 0
07.08.2012, 10:55
    #37906888
noligin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянный сеанс в службе WCF
а что для этого нужно?
...
Рейтинг: 0 / 0
07.08.2012, 13:39
    #37907291
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянный сеанс в службе WCF
...
Рейтинг: 0 / 0
07.08.2012, 16:32
    #37907600
noligin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянный сеанс в службе WCF
Подписку я уже реализовал. Дело в том что при простое клиент отключается и тогда получается что некуда просто рассылать сообщения. Вот что вычитал в 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
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Постоянный сеанс в службе WCF / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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