WCF, клиент не может подключиться, если не на той же машине - PullRequest
0 голосов
/ 13 ноября 2009

У меня есть простое веб-приложение ASP.NET, которое использует клиент WCF для связи с простой службой Windows, поддерживаемой WCF.

Все работало нормально в локальной среде. Мы развернули в dev, который также работал нормально. Однако на DEV веб-сервер и сервер приложений находятся на одном компьютере.

Теперь, когда мы развернули в QA, мы получаем 'Соединение с сокетом было прервано. исключение брошено немедленно. По какой-то причине наш веб-сервер QA не может общаться с нашим сервером приложений QA через наш клиент / сервис WCF. Я могу пропинговать сервер приложений QA с веб-сервера Я могу telnet сервер приложений QA с веб-сервера Я могу подключиться к HTTP WSDL на сервере приложений QA с веб-сервера

И, я могу подключить FINE к своему QA сервису из моей ЛОКАЛЬНОЙ среды / визуальной студии !!!

Так почему мое приложение QA ASP.NET не может общаться с моей службой QA WCF Windows? Я пытался и всеми возможными способами, и до сих пор не пойти ...

Вот мой раздел System.ServiceModel на клиенте:

<system.serviceModel>
    <bindings>
      <netTcpBinding>
        <binding name="BigFileBinding">
          <!-- required to receive files greater then default size of 16kb -->
          <readerQuotas maxArrayLength="5242880"/>
        </binding>
      </netTcpBinding>
    </bindings>
    <client>
      <endpoint address="net.tcp://NJQACNET01:58887/PriceService"
          binding="netTcpBinding"
          contract="IPriceService"
          bindingConfiguration="BigFileBinding"/>
      </endpoint>
    </client>
  </system.serviceModel>

Вот мой раздел system.servicemodel по сервису:

<system.serviceModel>
    <bindings>
      <netTcpBinding>
        <!-- required to receive files greater then default size of 16kb -->
        <binding name="BigFileBinding"
                 maxReceivedMessageSize="5242880">
          <readerQuotas maxArrayLength="5242880"/>
        </binding>
      </netTcpBinding>
    </bindings>
    <services>
      <service behaviorConfiguration="MetaDataBehavior" name="RK.Pricing.PricingPortal.MarketableSecuritiesService.PriceService">
        <endpoint address="net.tcp://localhost:58887/PriceService" binding="netTcpBinding"
          contract="RK.Pricing.PricingPortal.MarketableSecuritiesService.IPriceService" bindingConfiguration="BigFileBinding"   />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"  />
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:58889/PriceService" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="MetaDataBehavior">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>

Большое спасибо за любую помощь! С благодарностью ..

Ответы [ 2 ]

1 голос
/ 13 ноября 2009

Я думаю, что это проблема безопасности. Помните, что по умолчанию в NetTcpBinding используется проверка подлинности Windows.

Вы должны просмотреть и следовать опубликованным руководствам здесь , если это возможно.

1 голос
/ 13 ноября 2009

Вероятно, это проблема брандмауэра, используемый вами порт заблокирован между сервером ASP.Net QA и сервером WCF QA.

Вы можете проверить это с помощью команды telnet.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...