Почему моя служба WCF не предоставляет метаданные локально, когда я думаю, что настроил их точно так же, как в тестовой среде?
Окружающая среда
Моя машина для разработки имеет Windows Server 2003, SP2 с IIS. Я создал свой сервис локально, а затем настроил каталог CSPROJ как веб-сайт.
Конфигурация IIS
Web Site Description MyService
IP Address (All Unassigned)
TCP port 5001
Enable HTTP Keep-Alives true
HomeDirectory Directory located on this computer
Local Path Project directory with .svc and Web.config
Application Name Default Application
Execute Permissions Scripts and Executables
Application Pool Default
ASP.NET Version 2.0.50727
Virtual Path MyService
File location Path of Web.config
Я смоделировал свои настройки IIS для экземпляра UAT, из которого я могу получить информацию о прокси.
Однако, когда я пытаюсь получить информацию о прокси в моем экземпляре с
C:\Program Files\Microsoft Visual Studio 10.0\VC>svcutil http://localhost:5001/P
mdgService.svc
Я получаю следующие сообщения об ошибках.
Ошибка: невозможно получить метаданные из
http://localhost:5001/MyService.svc
...
Метаданные содержат ссылку, которая не может быть разрешена:
«http://localhost:5001/MyService.svc'.
Не было прослушивания конечной точки в http://localhost:5001/MyService.svc
...
Удаленный сервер возвратил ошибку: (404) Not Found.
...
Я не могу перейти к URL.
Я попробовал предложения
- Проверено, что поведение метаданных используется. (Это идентично рабочим экземплярам.)
- Разрешение полного доступа к C: \ Windows \ temp к IWAM_, IUSER_, ASPNET (предлагается здесь: Ссылка на метаданные WCF не может быть разрешена ) не помогло.
Вот посмотрите на мой Web.config
<configuration>
<!-...-->
<system.serviceModel>
<services>
<service behaviorConfiguration="MyService.Service1Behavior" name="MyService.MyService">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="MyBasicHttpBinding"
contract="MyService.MyService">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="MyBasicHttpBinding" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
maxBufferSize="2147483647">
<readerQuotas maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxDepth="2147483647"
maxNameTableCharCount="2147483647" maxStringContentLength="2147483647" />
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="MyService.Service1Behavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>