0

我必须在安全服务器中使用 Web 服务,在 https 中,带有证书和登录名。

所以我在 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 属性为空。ChannelFactory 的端点必须指定一个有效的地址。

但如果我去https://blabla.com/TrainService.svc/GetListTrainsAtGare/COE它可以工作......

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

4

1 回答 1

0

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

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

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

将端点放在配置中并通过引用条目也是一个好主意System.Configuration.ConfigurationManager

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

于 2012-08-09T07:19:39.287 回答