2012-02-09 4 views
0
  1. службы WCF
  2. WCF хостинг в службах Windows
  3. WinService войти в систему как Network Service

Хост приложение конфигурации:WCF хостинг в службах Windows (Network Service)

<service name="StudyingControllerService.ControllerService"> 
     <host> 
      <baseAddresses> 
      <add baseAddress="http://IP:PORT/ControllerService.svc"/> 
      </baseAddresses> 
     </host> 
     <endpoint address="" 
        binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IControllerService" 
        contract="StudyingControllerService.IControllerService" /> 
     </service> 

Все работает нормально в локальной сети. (localhost) Но я хочу получить доступ к моей службе с других компьютеров по сети.

Я использовал другой компьютер (из другой локации), сделал ping IP (winservice's). ping был в порядке. Я установил свой клиент и попытался подключиться к моей удаленной службе, но соединение не удалось. telnet тоже не могу установить подключение.

Что не так?

Брандмауэры отключены. (С обеих сторон)

На стороне клиента телнет не могу открыть соединение с IP PORT

+0

Вы проверили настройку брандмауэра, чтобы узнать, разрешены ли подключения на этом порту? – sarvesh

+0

Я выполнил netstat. и мой порт был там с состоянием LISTENING – ZuTa

+2

Вы должны включить трассировку WCF как на клиенте, так и на сервере. Посмотрите на журналы трассировки, и это, скорее всего, приведет вас к ответу. По крайней мере, это даст вам дополнительную информацию, чтобы опубликовать здесь, чтобы помочь людям помочь вам: o) –

ответ

1

Нет проблем с сервисом Windows или WCF. Проблема была у моего интернет-провайдера.

Он заблокировал порт, который использовал мое обслуживание. Итак, я прошу администратора открыть порт. и теперь все в порядке.

Спасибо всем за ответы.

0

У меня была аналогичная проблема. Он просто уперся, открыв ПОРТ на брандмауэре Windows.

Чтобы проверить, работает ли это, я отключил услугу межсетевого экрана.

Надеюсь, что это поможет!

+0

Брандмауэры отсоединен. (с обеих сторон) – ZuTa

+0

, то это, вероятно, не имеет никакого отношения к вашему сервису. Просто, что соединение между клиентом и сервером не работает. Я предполагаю, что вы можете попробовать создать один сайт asp.net на 1 странице и поместить его в IIS и попробовать получить доступ к нему от клиента. если вы не можете знать, почему даже basicHttpBidning не будет работать с вашим сервисом. – Digvijay

+0

Кроме того, вы можете попробовать запустить службу с разными учетными данными, отличными от локальной службы или сетевой службы - пользовательской учетной записи домена (я предполагаю, что ваш сервер и клиент являются частями сети домена) – Digvijay

0

Я хотел бы попробовать изменить свой базовый адрес в конфигурационном файле, следующим образом:

<service name="StudyingControllerService.ControllerService"> 
    <host> 
    <baseAddresses> 
     <add baseAddress="http://IP:PORT"/> 
    </baseAddresses> 
    </host> 
    <endpoint address="ControllerService.svc" 
      binding="basicHttpBinding" 
      bindingConfiguration="BasicHttpBinding_IControllerService" 
      contract="StudyingControllerService.IControllerService" /> 
</service> 

Моя причина рекомендовать это в том, что базовый адрес используется для обеспечения конечных точек, которые будут добавлены по отношению к базовому адресу - помещая конечную точку в базовый адрес, может возникнуть проблема.

Что-то попробовать хотя бы - пару минут редактирования, и вы получите ответ так или иначе.

+0

нет, это тоже не работает. Такое же исключение выбрасывается на стороне клиента. – ZuTa

Смежные вопросы