2010-03-24 4 views
1

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

Теперь, если я изменил «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> 

+0

Позвольте мне знать, что такое воздействие WDS и его настройки для WSDL – vijay

+0

Да тег сервис как <имя = behaviorConfiguration «WcfService2.Service1» сервис = «WcfService2.Service1Behavior»> – vijay

+0

ах, я вижу - ты иметь всю config, но вы не выделили строки config XML и нажмите кнопку «code» (101 010) на панели инструментов редактора - так что только части этих строк были фактически видны пользователям SO. Пожалуйста ** ** ** код формата, XML, SQL с кнопкой «код»! –

ответ

0

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

+0

Пожалуйста, сделайте это немного понятным, я не получил ur poiny – vijay

1

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

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

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

Тогда скажите вашу службу, чтобы использовать это поведение:

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

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

0

Является ли «mymachinename.domainname.com» в качестве главной в IIS для сайта?

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

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

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

HTH!

+0

Hi Krisc, Я добавил, что в моем файле конфигурации теперь, когда я отправляюсь на wsdl-файл, отображается его ошибка 404. – vijay

+0

Если вы перейдете на сайт mymachinename.domainname.com/VirtualFolder/MyService.svc, на каком сервере ссылается ссылка на WSDL? Это относится к localhost, или mymachinename.domainname.com? Какие привязки у вас установлены в IIS? Можете ли вы вставить всю сервисную часть конфигурации? Ваше оригинальное сообщение выглядит так, как будто оно было отредактировано. – Krisc

+0

Hi Krisc, я отредактировал мой вопрос в разделе сервиса моего файла конфигурации.Ниже показана ссылка, отображаемая при выполнении моего приложения http://win-nsms.smsserver.com/WcfServiceSample/Service1.svc?wsdl, где WcfServiceSample - это моя виртуальная папка. когда я нажимаю на это и указывая на тот же URL. – vijay