2013-03-06 70 views
1

最近我讀了一篇關於用戶名和密碼認證的自己wcf綁定的文章。清除用戶名綁定(無法自動調試wcf服務)

這裏是一篇文章:http://webservices20.blogspot.ru/2008/11/introducing-wcf-clearusernamebinding.html

該項目「清除用戶名綁定」效果很好。但對我來說,問題是我希望wcf服務器成爲WCF服務主機中的主機。 (就像你在VS中創建任何服務庫中的模板一樣,它將在WCF服務主機中運行)。我做了下一件事。我已經創建了新項目(服務庫),並簡單地將您的服務和合同複製到這個新項目中。然後我複製了app.config「system.serviceModel」部分並添加了引用ClearUserNameBinding項目和MyUserNameValidator。這就是全部 接下來我運行客戶端應用程序。一切都很好。 WCF服務主機已啓動,客戶端應用程序按我的預期結束。但現在的問題是,如果我在服務實現中放置了一個斷點(讓它位於EchoString函數的某個位置)並再次運行,我總是會在VS IDE中「無法自動調試WCFServiceLibrary」中收到消息。我真的不知道該如何處理這個錯誤以及如何擺脫它,因爲我需要調試才能使用。

P.S.這個錯誤僅在我使用ClearUserNameBinding時出現。如果我使用例如wsHttpBinding它完美的作品。當然我有<system.web> <compilation debug="true" />打開我的配置文件

在此先感謝!

回答

0

在visual studio中在客戶端的第一行放置一個斷點並附加到進程「wcf服務主機」。然後你可以調試到它的斷點。不知道如何做,而無需附加到另一個進程。

此外,您可以嘗試使用CUB而不是作爲單獨的綁定,而是作爲自定義綁定。您將需要從代碼創建自定義綁定。僞代碼:

var b = new CustomBinding(); 
b.elements.add(new TextEncodingElement()) 
b.elements.add(new SecurityElement() {SecurityMode="UsernameOverTransport"}) 
b.elements.add(new AutoSecuredHttpTransportElement())