Я разработал приложение ASP.NET, которое включает службу WCF. Эта услуга должна использоваться сторонними приложениями. Этот сервис хорошо работал во время тестирования в моей среде разработки. Моя среда разработки использует IIS 7.0 на Windows 7 RC 1. Однако я не могу использовать службу, когда она находится в моей рабочей среде. Моя промежуточная / производственная среда - это среда Windows Server 2003, IIS 6.
Когда я пытаюсь сослаться на службу, когда она находится в среде IIS 6, я получаю сообщение об ошибке:
Ошибка: невозможно получить метаданные
...
Интересно, я заметил небольшую, но я считаю, важную разницу в тестировании промежуточных / производственных сред.
В моей тестовой среде я заметил, что могу получить доступ к странице «Сервис» через URL-адрес со следующим шаблоном:
http://localhost/MyApp/services/myService.svc
Я также заметил, что в моей тестовой среде я могу видеть информацию WSDL, если посещаю URL со следующим шаблоном:
http://localhost/MyApp/services/myService.svc?wsdl
Однако в моей рабочей среде я не вижу информации WSDL. Как ни странно, я могу видеть страницу службы, хотя.
Вот параметры конфигурации, связанные с моими службами в моей производственной среде.
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="myServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<services>
<service behaviorConfiguration="myServiceBehavior" name="myService">
<endpoint address="" binding="basicHttpBinding" contract="myService" />
<endpoint address="mex" binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
Почему я могу видеть страницу «Служба», а не страницу WSDL в среде Windows Server 2003 IIS 6.0?
Спасибо!