Проблема при использовании службы wcf, размещенной в IIS? - PullRequest
1 голос
/ 26 августа 2009

Я разработал службу wcf и разместил ее в IIS, файл svc выглядит следующим образом

<%@ ServiceHost Language="C#" Debug="true" Service="ServiceImplemetation.HelloService" %>

и раздел system.servicemodel файла web.config выглядит следующим образом:

<system.serviceModel>
  <behaviors>
    <serviceBehaviors>
      <behavior name="MetadataBehavior">
        <serviceMetadata httpGetEnabled="true" />
      </behavior>
      <behavior name="WebApplication1.Service1Behavior">
        <serviceMetadata httpGetEnabled="true" />
        <serviceDebug includeExceptionDetailInFaults="false" />
      </behavior>
      <behavior name="WebApplication1.MyHelloBehavior">
        <serviceMetadata httpGetEnabled="true" />
        <serviceDebug includeExceptionDetailInFaults="false" />
      </behavior>
    </serviceBehaviors>
  </behaviors>
  <services>
     <service name="ServiceImplemetation.HelloService"
              behaviorConfiguration="MetadataBehavior">
        <endpoint address="" 
                  binding="basicHttpBinding" 
                  contract="ServiceContracts.IHello" />
        <endpoint address="mex" 
                  binding="mexHttpBinding" contract="IMetadataExchange" />
        <host>
           <baseAddresses>

служба работает нормально, теперь я создал веб-клиент для использования службы и записал раздел очистки файла web.config следующим образом:

<system.serviceModel>
  <behaviors>
    <endpointBehaviors>
      <behavior name="wsServiceBehaviour">
         <dataContractSerializer maxItemsInObjectGraph="6553600"/>
      </behavior>
    </endpointBehaviors>
  </behaviors>
  <client>
    <endpoint address="http://localhost:8379/HelloService/" 
              binding="basicHttpBinding" 
              behaviorConfiguration="wsServiceBehaviour" 
              contract="ServiceContracts.IHello" 
              name="BasicHttpBinding_IIHello" />
  </client>
</system.serviceModel> 

Теперь, когда я получаю доступ к этой услуге, я получаю следующую ошибку:

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

Ответы [ 2 ]

1 голос
/ 26 августа 2009

Если вы размещаете в IIS, вы не можете использовать свои собственные базовые адреса - вашим URL-адресом службы будет URL-адрес виртуального каталога, в котором находится ваш файл SVC, плюс файл SVC, а также любой относительный адрес в конечной точке службы. *

В вашем, что вы должны подключиться к:

http://myserver/MyVirtualDirectory/MyService.svc/

Любые настроенные «базовые адреса» в разделе system.serviceModel (которые вы, к сожалению, не указали) будут бесполезны, если вы используете IIS для размещения службы WCF.

Марк

0 голосов
/ 26 августа 2009

Обычно IIS настроен для работы на порту 80, а не на порту 8379. Я думаю, что это проблема.

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