Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WCF: проблема при хостинге как "windows-служба", А вот под консоль все ок 
:(
    Опции темы
lam0x7C4
Дата 22.8.2009, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 1.6.2007
Где: Киев

Репутация: нет
Всего: 1



Всем фанам wсf-а привет!
Итак, к делу, что мы имеем:
- есть wcf-сервис, который разворачиваеться как windows-service или как консольное приложение(дял дебага) на сервере;
- есть клиент, на клиентской машине.

Что мы наблюдаем:
1)если wcf-сервис захостить под консолью(т.е. запустить как консоль), и то все работает ок: т.е. клиент нормально коннектиться к сервису, вызывает методы, тянет данные и т.д. и т.п.
2)но если wcf-сервис захостить как windows-service(как службу), то вся идет не так гладко: клиент приконнектиться не может, получая при этом ошибку следующего содержания: "TCP error code 10061: No connection could be made because the target machine actively refused it."

Причем в обеих случаях конфиг-файлы, аккаунты, под которыми запускаються как сервис как и клиент, одинаковые. Че-то мне это не нравиться smile

На всяк случай привожу конфиги:
Сервис:
Код

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="myConnectionString" providerName="System.Data.SqlClient" connectionString="Data Source=myServer;Initial Catalog=myDb;Integrated Security=True;Timeout=1000000;"/>
  </connectionStrings>
  <system.serviceModel>

    <behaviors>
      <serviceBehaviors>
        <behavior name="mybehavior">
          <serviceDebug includeExceptionDetailInFaults="true" />
          <serviceMetadata />


          <serviceAuthorization principalPermissionMode="UseWindowsGroups" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <bindings>
      <wsHttpBinding>
        <binding name="myBinding">
          <security>
            <transport clientCredentialType="Windows" />
          </security>
        </binding>

      </wsHttpBinding>
    </bindings>
    <!--<client>
      <endpoint address="http://MyServer:1662/Service1" binding="wsHttpBinding"
                bindingConfiguration="myBinding"
                contract="WcfService1.IService1" name="wsHttpBinding_IService1">
        <identity>
          <userPrincipalName value="myDomain\myUser"/>
        </identity>
      </endpoint>
    </client>-->
    <services>
      <service name="WcfService1.Service1" behaviorConfiguration="mybehavior">
        <!-- Service Endpoints -->
        <endpoint address="http://MyServer:1662/Service1" binding="wsHttpBinding"
                  bindingConfiguration="myBinding"
                  contract="WcfService1.IService1">

          <!-- 
              Upon deployment, the following identity element should be removed or replaced to reflect the 
              identity under which the deployed service runs.  If removed, WCF will infer an appropriate identity 
              automatically.
          -->
          <!--<identity>
            <dns value="localhost"/>
          </identity>-->
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
        <host>
          <baseAddresses>
            <add baseAddress="http://myServer:1662/Service1"/>
          </baseAddresses>
        </host>
      </service>
    </services>
  </system.serviceModel>
</configuration>


Клиент:
Код

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.serviceModel>
    <bindings>
      <wsHttpBinding>
        <binding name="WSHttpBinding_IService1" closeTimeout="00:01:00"
            openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
            bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
            maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
            messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
            allowCookies="false">
          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
              maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <reliableSession ordered="true" inactivityTimeout="00:10:00"
              enabled="false" />
          <security mode="Message">
            <transport clientCredentialType="Windows" proxyCredentialType="Windows"
                realm="" />
            <message clientCredentialType="Windows" negotiateServiceCredential="true"
                algorithmSuite="Default" establishSecurityContext="true" />
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>
    <client>
      <endpoint address="http://myServer:1662/Service1" binding="wsHttpBinding"
          bindingConfiguration="WSHttpBinding_IService1" contract="IService1"
          name="WSHttpBinding_IService1">
        <identity>
          <servicePrincipalName value="testService1/myServer"/>
          <!--<dns value="" />-->
        </identity>

      </endpoint>
    </client>
  </system.serviceModel>
</configuration>


Буду рад любому советуsmile
спасибо.

Это сообщение отредактировал(а) lam0x7C4 - 24.8.2009, 15:08
PM MAIL ICQ   Вверх
mihryak
Дата 26.8.2009, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 3
Всего: 36



покажи код program.cs сервиса и использование клиента
PM MAIL ICQ   Вверх
sdenisen
Дата 21.4.2010, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 21.4.2010

Репутация: нет
Всего: нет



есть какие нибудь результаты?
у меня точно такая же проблема, очень странно. (

нашел на msdn пример как управлять WCF сервисом используя Windows Service, 
(пример на msdn не работает, т.к. там в методе OnStart сервис запускать как отдельный поток.), странно.(  
вот ссылка:
http://msdn.microsoft.com/ru-ru/library/ms733069.aspx

Это сообщение отредактировал(а) sdenisen - 21.4.2010, 14:28
PM MAIL   Вверх
jonie
Дата 22.4.2010, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



у вас стоит безопасность на уровне сообщений (так называемая WS-Security) с windows аутентификацией на транспортном уровне и уровне сообщений.
Код

          <security mode="Message">
            <transport clientCredentialType="Windows" proxyCredentialType="Windows"
                realm="" />
            <message clientCredentialType="Windows" negotiateServiceCredential="true"
                algorithmSuite="Default" establishSecurityContext="true" />
          </security>


сделайте 
Код


<servicePrincipalName />

(уберите value=....) http://msdn.microsoft.com/en-us/library/ms733130.aspx

Цитата

(пример на msdn не работает, т.к. там в методе OnStart сервис запускать как отдельный поток.), странно.(  
ниче не странно, так и должно быть, иначе ваш сервис будет прибит операционной системой, т.к. не отдаст ей управление в течении ~30 секунд.

А в целом вроде бы все работает.


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0697 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.