2010-11-07 66 views
3

我遇到了無法通過URL在Visual Studio 2010中添加服務引用的問題。無法解析WCF元數據引用

我有我的HOST文件設置來解決http://mydomain.com本地,並設置我的web.config文件引用此網址。然而,當我去通過網址添加我收到以下錯誤服務引用:

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. 

其他網址的精細工作: http://mydomain.com/myservice.svc?wsdlhttp://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> 

回答

20

此問題的解決方案是IIS需要擁有C:\ Windows \ Temp文件夾的權限。沒有這個,它不能生成所需的元數據。

+0

剛剛遇到這個問題,感謝您的解決方案! – 2011-11-16 18:44:33

+0

也爲我排序,謝謝 – Marcus 2011-12-08 15:53:35

+0

我面臨着同樣的問題,但根據解決方案,我如何將權限分配給臨時C:\ Windows \ Temp for iis?步驟是什麼? – 2012-06-14 10:21:02

相關問題