c#通过服务引用使用SSL Web服务

时间:2012-08-09 07:09:18

标签: c# web-services visual-studio-2008 webservice-client

我必须在安全服务器中使用https,并使用证书和登录来使用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上的Address属性为null。 ChannelFactory的端点必须具有指定的有效地址。

但如果我去https://blabla.com/TrainService.svc/GetListTrainsAtGare/COE它就有效......

另一个问题:我不能做myTrainService.Credentials,为什么?

1 个答案:

答案 0 :(得分:0)

错误告诉您没有指定端点。通常,Web服务引用将在app.config中存储从wsdl获取的端点,但您可能以不同的方式生成了代码,并且没有提供默认值。

如果服务具有Url属性,您可以在代码中尝试以下操作。

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

将端点放在配置中并通过System.Configuration.ConfigurationManager

引用条目也是一个好主意。

要解决您的第二个问题,可能更适合另一个问题: 您必须提供有关连接类型和安全性的更多上下文,以获得准确的答案。