2009-08-16 160 views
3

注意Web服務,WCF noobie警報如何將服務引用添加到WCF客戶端需要客戶端身份驗證證書

我需要創建一個WCF客戶端查詢非WCF Web服務。 Web服務不是WCF服務。此外,該Web服務需要客戶端身份驗證證書。現在,我有了證書,並且可以創建一個完美工作的非WCF客戶端;我能夠'添加Web引用'和一個打開的證書對話框,以允許我選擇適當的證書,然後繼續創建Web引用。嘗試通過「添加服務引用」來創建WCF客戶端是另一回事,它只是因403訪問被拒絕錯誤而失敗。

我有服務的WSDL,並已運行svcutil.exe,但不知道如何從那裏繼續。

感謝您的幫助!

+0

您的開發機器上是否安裝了客戶端身份驗證證書? – 2009-08-16 12:07:43

回答

3

我假設您使用的服務正在執行客戶端SSL身份驗證。

由於添加服務引用失敗,因此您可以使用svcutilgenerate the client from the WSDL file。我覺得語法將是這樣的:

svcutil *.wsdl /l:C# /out:Reference.cs /config /s /ct:System.Collections.Generic.List`1 /ser:Auto /tcv:Version35 /n:*,<NameOfYourNamespaceHere> /edb 

這將生成一個文件,Reference.cs,包含代理類業務(你可以把這個文件任何你想要的名稱)。將此文件添加到您的項目。配置文件output.config也將被生成。您可以將此配置添加到您的應用程序配置中,而不是手動輸入。

現在您可以按照此MSDN文章使用Transport Security with Certificate Authentication。您可以跳到客戶端部分,在其中顯示如何在代碼和配置中將證書附加到請求。

祝你好運。

+0

這樣做的竅門,謝謝你的文章參考。 – Jay 2009-08-20 03:46:18

0

愚蠢的問題(也許):你可以連接到服務端點,將它與存儲在證書中的證書一起呈現,然後從那裏下載WSDL(可能還有XSD)?或者,提供這項服務的實體能否真正向你發送這些文件(或使它們可供下載)?

在磁盤上創建WSDL(和XSD)文件後,應該很容易爲其創建基於這些文件的WCF客戶端(使用svcutil.exeAdd Service Reference),然後爲其配置相應的安全性。

只是一個想法....(價值$ 0.02≦)

馬克

3

我知道這是老問題,它已經被解決了,但我想提一提,添加服務引用也適用用於存儲在磁盤上的WSDL文件。馬克也提到了它。添加服務引用對話框接受:

  • URL到WSDL
  • URL元數據交換終結在那裏/ MEX內部添加
  • 任何文件路徑WSDL文件

所以

  • 服務URL如果你有WSDL並且都需要XSD文件,那麼你也可以使用Add service reference。唯一棘手的部分是添加服務引用對話框沒有「瀏覽」按鈕,這就是爲什麼此功能未知的原因。

  • +0

    +1對於額外的評論並不明顯,「地址」字段採用文件路徑並且沒有「瀏覽」按鈕。 – 2014-01-17 00:43:13

    相關問題