c#通过服务参考使用SSL Web服务

c#通过服务参考使用SSL Web服务

问题描述:

我必须在安全服务器中使用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,为什么?

错误提示您没有指定端点。通常,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