WCF SocketException - PullRequest
       7

WCF SocketException

1 голос
/ 15 марта 2012

Я разрабатываю приложение WCF в VS2010.Когда я использую отладчик in-IDE для запуска хост-приложения и клиента, все работает как положено.

Однако, когда я запускаю два исполняемых файла вручную (переходя в папки / bin / Debug /), яполучить от клиента следующее исключение:

System.Net.Sockets.SocketException: не удалось установить соединение, поскольку целевая машина активно отказала ему в этом 127.0.0.1:8732

Странно,в файле app.config я указываю использовать порт 5000, а не 8732.

Что не так?Заранее спасибо.

РЕДАКТИРОВАТЬ: Вот app.config для хост-приложения:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

  <system.web>
    <compilation debug="true" />
  </system.web>
  <!-- When deploying the service library project, the content of the config file must be added to the host's 
  app.config file. System.Configuration does not support config files for libraries. -->
  <system.serviceModel>
    <services>
      <service name="WCFServiceLibrary.SavalotServiceObject">
        <endpoint address="" binding="wsHttpBinding" contract="WCFServiceLibrary.ISavalotService">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:5000/Design_Time_Addresses/WCFServiceLibrary/SavalotServiceObject/" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <!-- To avoid disclosing metadata information, 
          set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="True"/>
          <!-- To receive exception details in faults for debugging purposes, 
          set the value below to true.  Set to false before deployment 
          to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="False" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>

</configuration>

Ответы [ 2 ]

4 голосов
/ 15 марта 2012

РАЗМЕЩЕННЫЕ ПОЛЬЗОВАТЕЛИ НЕ ДОЛЖНЫ ИДЕТ ЧЕРЕЗ 13 КОММЕНТАРИЙ

В этом случае проблема заключалась в том, что пользователь запускал многопроектное решение.В этом случае, какой бы проект ни выполнялся, это проект, конфигурационный файл которого имеет значение.

Если вы запускаете WcfService, вам понадобится проект со службой в нем, чтобы иметьего web.config файл сконфигурирован для использования правильных портов.

Если вы тестируете WcfService, вам понадобится тестовый проект, чтобы его файл app.config был сконфигурирован для использованияправильные порты.

Это распространенная ошибка, которую допускают новички в веб-сервисах, и стыдиться нечего.

0 голосов
/ 15 марта 2012

Вы пытались использовать что-то вроде WireShark ? Запуск его на обеих конечных точках - это хороший способ устранения проблем сокетов.

...