1. 程式人生 > >winform呼叫wcf服務遇到的問題及解決方案

winform呼叫wcf服務遇到的問題及解決方案

一直都是用web掉用wcf服務的,前幾天公司要做一個自動測試的工具,需要在測試環境用winform呼叫測試的wcf服務,於是像web專案一樣,照常引用了wcf服務引用和公用dll。

開發自己測試 都沒有問題。於是WCF提交測試環境,於是問題來了 ,相同的winform專案呼叫本機的WCF服務無任何問題,但是呼叫測試伺服器的WCF卻提示如下異常:

“未處理 System.ServiceModel.Security.SecurityNegotiationException
  Message="伺服器已拒絕客戶端憑據。”

好吧,原本以為是binding下的<security mode="Transport">節點配置的問題,可是改成mode="None“還是報相同的錯誤。

最終解決方案:

在 using (TestServiceClient client = new TestServiceClient())
                {

//最後在這個位置加了這三行程式碼定義憑證資料 解決問題
                    client.ClientCredentials.Windows.ClientCredential.UserName = "administrator";//使用者名稱
                    client.ClientCredentials.Windows.ClientCredential.Password = "

admin";//密碼
                    client.ClientCredentials.Windows.ClientCredential.Domain = ”192.168.1.100";//"(伺服器地址)


                    response = client.Do(request);
                }