Файл WSDL отсутствует для WCF WebService - PullRequest
1 голос
/ 24 марта 2010

Я создал простой сервис wcf с функциональностью по умолчанию и размещен в IIS7. Работает нормально и передает данные клиенту. Но когда я пытаюсь нажать на ссылку wsdl в сервисе, на ней отображается «Страница не может быть отображена». Дайте мне знать, в чем проблема , Когда я пытаюсь щелкнуть ссылку ниже (http://win -nsms.smsserver.com / VirtualFolder / MyService.svc? Wsdl ), файл WSDL не отображается в браузере. Вместо этого я получаю сообщение об ошибке «Страница не может быть отображена» на странице

Теперь, если я изменю «win-nsms.smsserver.com» на «localhost» в URL-адресе, будет отображен файл WSDL.

Да, я добавил конфигурацию поведения в мою конфигурацию следующим образом

<system.serviceModel>
<services>
  <service name="WcfServiceSample.Service1" behaviorConfiguration="WcfServiceSample.Service1Behavior">       
    <endpoint address="" binding="wsHttpBinding" contract="WcfServiceSample.IService1">           
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>
</services>
  <serviceHostingEnvironment>
    <baseAddressPrefixFilters>
      <add prefix="http://win-nsms.smsserver.com"/>
    </baseAddressPrefixFilters>
  </serviceHostingEnvironment>
<behaviors>
  <serviceBehaviors>
    <behavior name="WcfServiceSample.Service1Behavior">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
  </serviceBehaviors>      
</behaviors>

Ответы [ 3 ]

1 голос
/ 24 марта 2010

Вы разрешили поиск метаданных службы?

В разделе поведения вашего конфигурационного файла добавьте новое поведение, подобное этому:

<behaviors>
  <serviceBehaviors>
    <behavior name="HttpGetMetadata">
      <serviceMetadata httpGetEnabled="True"/>
    </behavior>
  </serviceBehaviors>
</behaviors>

Затем скажите вашему сервису использовать это поведение:

<system.serviceModel>
    <services>
        <service name="MyService" 
                 behaviorConfiguration="HttpGetMetadata">
        ....

Это говорит о том, что ваша служба позволяет получать метаданные службы (WSDL) через http. Для подтверждения вы можете перейти по соответствующему URL.

0 голосов
/ 24 марта 2010

Добавлен ли "mymachinename.domainname.com" в качестве маски хоста в IIS для сайта?

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

<serviceHostingEnvironment>
    <baseAddressPrefixFilters>
        <add prefix="http://mymachinename.domainname.com"/>
    </baseAddressPrefixFilters>
</serviceHostingEnvironment>

У меня была похожая проблема, когда служба работала на 100% для domain.com, но не для www.domain.com. Мне пришлось настроить последний как перенаправление на первый и установить базовый адрес на первый.

НТН!

0 голосов
/ 24 марта 2010

Вы включили экспозицию WDS? Стандартные настройки не показывают WDSL.

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