none
WCF служба не принимает подключения RRS feed

  • Вопрос

  • Есть служба сделанная как window-процесс на сервере, подключится с ней можно только с самого сервера, подключения с других компьютеров не проходят. Вот конфиг службы:

    <?xml version="1.0" encoding="utf-8"?>
    
    <configuration>
      <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
      </startup>
      <system.serviceModel>
        <services>
          <service name="FileHosting.Server.Model.FileHostService" behaviorConfiguration="myBehavior">
            <host>
              <baseAddresses>
                <add baseAddress="http://localhost:8000/FileHosting/FileHostService" />
              </baseAddresses>
            </host>
            <endpoint address="" binding="basicHttpBinding" bindingConfiguration="Binding"
                      contract="FileHosting.Common.Services.IFileHostService">
            </endpoint>
    
            <endpoint address="mex"
                      binding="mexHttpBinding"
                      contract="IMetadataExchange" />
          </service>
        </services>
        <behaviors>
          <serviceBehaviors>
            <behavior name="myBehavior">
              <serviceMetadata httpGetEnabled="true"></serviceMetadata>
            </behavior>
          </serviceBehaviors>
        </behaviors>
        <bindings>
          <basicHttpBinding>
            <binding name="Binding">
              <security mode="None">
                <transport clientCredentialType="None" />
              </security>
            </binding>
          </basicHttpBinding>
        </bindings>
      </system.serviceModel>
    </configuration>
    <!-- 
    binding="basicHttpBinding"
    -->

    Когда служба запущена на сервере, locahost в конфиге заменен на внешний ip сервера. Как побороть такое поведение?

    2 июня 2017 г. 14:40

Ответы

Все ответы

  • Если речь об IIS Express, то здесь обсуждаются вопросы видимости службы "из вне". Собственно, изложенные там идеи (касательно netsh и фаервола) можно применить и к WCF-службе, хостом которой является обычное консольное приложение .NET.

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    2 июня 2017 г. 14:55
  • Все просто: нужно заместо locahost написать 0.0.0.0 и тогда служба будет принимать подключение на всех сетевых интерфейсах.
    2 июня 2017 г. 17:45
  • Все просто: нужно заместо locahost написать 0.0.0.0 и тогда служба будет принимать подключение на всех сетевых интерфейсах.
    Если проблема решена, закрывайте тему.

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    4 июня 2017 г. 19:04