2012-08-09 145 views
0

我必須在安全服務器中使用https,使用證書和登錄來使用Web服務。c#通過服務參考使用SSL Web服務

所以我在VS2008中做了一個服務引用。

static void Main(string[] args) 
    { 
     Console.WriteLine("Value of code TR3A ?\n"); 
     String codeTR = Console.ReadLine(); 

     string responseFromServer =""; 
     System.Net.ServicePointManager.CertificatePolicy = new MyPolicy(); 

     serviceTrains.TrainServiceClient myTrainService = new serviceTrains.TrainServiceClient(); 

     responseFromServer = myTrainService.GetListTrainsAtGare(codeTR).ToString(); 

     console.WriteLine(responseFromServer); 
    } 

在我的控制檯應用程序,我想寫的JSON至極我找回,但我有一個錯誤:

InvalidOperationException異常:上ChannelFactory.Endpoint地址屬性爲null。 ChannelFactory的端點必須具有指定的有效地址。

,但如果我去https://blabla.com/TrainService.svc/GetListTrainsAtGare/COE它的工作原理...

另一個問題:我不能讓myTrainService.Credentials,爲什麼?

回答

0

錯誤提示您沒有指定端點。通常,Web服務引用將存儲從app.config中獲取wsdl的端點,但您可能以不同的方式生成了代碼,並且沒有提供默認值。

在您的代碼中,如果服務具有Url屬性,則可以嘗試以下操作。

myTrainService.Url = "https://blabla.com/TrainService.svc/GetListTrainsAtGare/COE"; 

這也是一個好主意,把端點的配置和引用條目通過System.Configuration.ConfigurationManager

爲了解決第二個問題,也許更適合另一個SO問題: 你將不得不提供更多有關連接類型和安全性的上下文有望得到準確的答案。

+0

感謝所有人,但我不明白,我看到任何地方的'Url'屬性,但我無法做到......有什麼想法爲什麼? – Craysis 2012-08-09 07:32:26

+0

您是如何製作參考的C#代碼的?它是什麼類型的服務,Web Reference或Service Reference? – 2012-08-09 08:14:43

+0

這是一個服務參考,但現在沒關係,我只用一個httpWebRequest,更簡單;) Thx! – Craysis 2012-08-09 08:41:00