У меня возникла проблема, когда я не могу добавить ссылку на службу в Visual Studio 2010 через URL-адрес.
У меня есть настройки моего файла HOST для локального разрешения http://mydomain.com и настройки моего файла web.config для ссылки на этот URL. Однако, когда я иду, чтобы добавить ссылку на службу по URL, я получаю следующую ошибку:
Metadata contains a reference that cannot be resolved: 'http://mydomain.com/myservice.svc?wsdl'.
The WSDL document contains links that could not be resolved.
There was an error downloading 'http://mydomain.com/myservice.svc?xsd=xsd0'.
The underlying connection was closed: An unexpected error occurred on a receive.
Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
An existing connection was forcibly closed by the remote host
Metadata contains a reference that cannot be resolved: 'http://mydomain.com/myservice.svc'.
There was no endpoint listening at http://mydomain.com/myservice.svc that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.
The remote server returned an error: (404) Not Found.
Другие URL работают нормально:
http://mydomain.com/myservice.svc?wsdl и http://mydomain.com/myservice.svc
Вот мой файл web.config:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<services>
<!-- Note: the service name must match the configuration name for the service implementation. -->
<service name="FuncWS.Email" behaviorConfiguration="ServiceType" >
<!-- Add the following endpoint. -->
<endpoint address="myservice.svc" binding="webHttpBinding" contract="FuncWS.IEmail"></endpoint>
<!-- Note: your service must have an http base address to add this endpoint. -->
<endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />
<host>
<baseAddresses>
<add baseAddress="http://mydomain.com"/>
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceType">
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>