WCF Web.Config Вопрос - PullRequest
       12

WCF Web.Config Вопрос

0 голосов
/ 21 февраля 2011

Я решил перенести свою унаследованную веб-службу на службу WCF под названием ServiceZ.svc.Несмотря на то, что перемещение прошло без проблем, приложение компилируется, и у меня на компьютере разработчика работают другие службы WCF TCP, но я не могу загрузить эту службу HTTP WCF.Я продолжаю получать 404 ошибки независимо от того, что я пытаюсь - может кто-нибудь, пожалуйста, просмотрите включенный раздел web.config и помогите мне выяснить, что не так?Спасибо!

<system.serviceModel>  
    <services>  
      <service name="ServiceZ">  
        <endpoint address="http://localhost/Website/ServiceZ" binding="basicHttpBinding"
          name="MainHttpPoint" contract="IServiceZ" />  
        <endpoint address="mex" binding="mexHttpBinding" name="MexEP"  
          contract="IMetadataExchange" />  
        <host>  
          <baseAddresses>  
            <add baseAddress="http://localhost/Website/ServiceZ" />  
          </baseAddresses>  
        </host>  
      </service>  
    </services>  
    <bindings>  
      <basicHttpBinding>  
        <binding openTimeout="0:10:00" sendTimeout="00:10:00" />  
      </basicHttpBinding>  
    </bindings>  
    <behaviors>  
      <serviceBehaviors>  
        <behavior>  
          <serviceMetadata httpGetEnabled="true" />  
          <serviceDebug includeExceptionDetailInFaults="false" />  
        </behavior>  
      </serviceBehaviors>  
    </behaviors>  
  </system.serviceModel>

1 Ответ

1 голос
/ 21 февраля 2011

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

1) В serviceBehaviors Я склонен добавлять следующее в поведение: (полностьюнеобязательно)

<useRequestHeadersForMetaAddress>
  <defaultPorts>
    <add scheme="http" port="__PORT__" />
  </defaultPorts>
</useRequestHeadersForMetaAddress>

Это делает службу доступной с помощью запроса, используя localhost, localserver1, www.webserver2.com или fully.qualified.domain.com.(Делает для уменьшения головной боли ИМХО).

2) Адреса конечных точек относительно baseAddress.Это значит, что вы можете использовать address="" для привязки по умолчанию и address="mex" для mexHttpBinding, учитывая, что baseAddress="http://localhost:__PORT__/Website/ServiceZ"

Скорее всего ваша проблема WSDL вызвана сочетаниемдве проблемы (в основном, служба говорит, что вся разметка может быть найдена на локальном хосте (как указано адресом конечной точки) - что верно, когда вы запускаете ее локально, однако, когда она находится на удаленном сервере, это уже не так)

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