我必须在安全服务器中使用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
,为什么?
答案 0 :(得分:0)
错误告诉您没有指定端点。通常,Web服务引用将在app.config中存储从wsdl获取的端点,但您可能以不同的方式生成了代码,并且没有提供默认值。
如果服务具有Url属性,您可以在代码中尝试以下操作。
myTrainService.Url = "https://blabla.com/TrainService.svc/GetListTrainsAtGare/COE";
将端点放在配置中并通过System.Configuration.ConfigurationManager
要解决您的第二个问题,可能更适合另一个问题: 您必须提供有关连接类型和安全性的更多上下文,以获得准确的答案。