2012-02-02 110 views
10

任何人都可以告訴我爲什麼我在嘗試添加我的服務時遇到此錯誤?WCF測試客戶端無法添加服務,無法獲取元數據

Error: Cannot obtain Metadata from http://myserver/myapp . If this is a Windows (R) Communication Foundation service to which you have access, please check that you have enabled metadata publishing at the specified address. For help enabling metadata publishing, please refer to the MSDN documentation at http://go.microsoft.com/fwlink/?LinkId=65455 . WS-Metadata Exchange Error URI: http://myserver/myapp Metadata contains a reference that cannot be resolved: ' http://myserver/myapp '. The remote server returned an unexpected response: (405) Method Not Allowed. The remote server returned an error: (405) Method Not Allowed.HTTP GET Error URI: http://myserver/myapp There was an error downloading ' http://myserver/myapp '. The request failed with HTTP status 403: Forbidden.

更新:我有以下的終結點已有,

<endpoint address="mex" 
      binding="mexHttpBinding" 
      name="Metadata" 
      contract="IMetadataExchange" /> 

我也有服務行爲設置:

<serviceBehaviors> 
    <behavior name="myBehavior"> 
     <serviceMetadata httpGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="false" /> 
    </behavior> 
    </serviceBehaviors> 
+0

嘗試關注我發佈的鏈接中的視頻。當我遇到同樣的錯誤時,他們爲我工作 – 2012-02-02 19:36:14

回答

5

我想通了。我在其中一個端點上使用了絕對路徑,並且我擁有多個端點。我將它改爲相對路徑,然後一切正常。

此外,如果您的服務未運行並且可能與元數據無關,則可能會發生這種情況。如果你有ConfigurationErrorsException那麼你也會看到這個結果。

我也試圖將配置更改保存到項目中,然後它告訴我保存/覆蓋/忽略等。它最終添加了「設計器」的項目子類型,並且一旦我移除它,它就返回正常工作。

0

如果添加元數據端點不是您的問題。進一步檢查錯誤消息的詳細信息。我有一個缺失的圖書館; 「無法加載文件或程序集*」。

我需要改變的引用複製本地=真

0

我是新來的WCF和剛遞給我裏面WCF服務項目。 我在Win7上使用VS2010中的WCF測試客戶端時遇到了類似的問題。在嘗試本文和其他人的所有配置更改後,我仍然收到類似的錯誤。

所以我放棄了,開始閱讀WCF。在這裏我發現VS應該以管理員身份啓動。這裏的文章:Getting Started Tutorial WCF 原來,我必須啓動VS2010與'以管理員身份運行'選中。這解決了這個問題,我能夠在VS2010中測試WCF服務。我發佈這個答案讓其他人看起來以管理員身份運行。

7

當您嘗試從某個函數返回自定義類對象並且該函數在類聲明中沒有[DataContract]屬性時,也會發生這種情況。 WCF不知道你的返回類型是什麼,所以它會拋出標準的消息。

[Serializable] 
[DataContract] 
public class ServiceResult 
{ 
    .... 
} 
+0

儘管通用消息指出它無法找到元數據,但我嘗試刪除一些OperationContracts並且它工作正常。原來,我有一個從Dictionary繼承的DataMember,導致這個問題。謝謝。 – Andrew 2016-04-01 15:01:49

+0

+ 5000從我,感謝您的解決方案: 其實我在我的實體類中只有一個只讀屬性,只是因爲該單一的只讀屬性元數據不交換後,[DataContract]標記所有其他類和屬性與[DataMember]並排除只讀屬性我很好去 - 謝謝 – 2018-01-29 09:51:58

0

有些時候,元數據或設置沒有任何要做的事情;相反,我們可以簡單地使用127.0.0.1而不是http:\ localhost \

6

我有這個問題,事實證明,當我重命名.svc文件時,對它的引用沒有從Service1.svc重命名。運行項目範圍搜索並用您的新名稱替換.Service1

<%@ ServiceHost Language="C#" Debug="true" Service="MyNamespace.Service1" CodeBehind="MyRenamedService.svc.cs" %> 

Service="MyNamespace.Service1"應該讀Service="MyNamespace.MyRenamedService"

+0

我有同樣的問題。 – 2016-06-10 16:26:15

+0

我的問題也謝謝! – Ben 2017-10-27 15:57:36

0

我發現我有,因爲我是使用從字典繼承了DataContract的同樣的錯誤。DataContract的正確設置應該如下:

[CollectionDataContract(Name = "AdditionalProperties", 
          ItemName = "Property", 
          KeyName = "Key", 
          ValueName = "Value")] 
public class AdditionalProperties : Dictionary<string, string> 
{ 
} 
0

這是我對此錯誤消息的體驗,可能對他人有用。 我的WCF服務在windows 2008 server上工作正常。我將相同的解決方案複製到開發機器上,從解決方案中選擇.svc文件,以便WCF測試客戶機可以彈出。

有錯誤打開無法獲取元數據,WCF測試客戶端,安裝無法加載等

關鍵的是,首先揚起的服務(http://localhost:port/Service),那麼只有嘗試WCF測試客戶端。

0

在我的情況下,我沒有啓用BindingParams.AllowHttpGet。當它被設置爲true,它工作...

相關問題