感谢您的答复。我尝试了解决方案,但收到 404 错误。在我的情况下,webrole 名称是“TimeSheetUI”,当我尝试使用“timesheetui.cloudapp.net:8080”访问该服务时,它会引发 404 错误。但是,如果我尝试使用http://e214d16594be4e31abfbf0488b5d612b.cloudapp.net:8080/timesheetservices.svc访问它,它可以工作。我希望我不需要添加任何带有 DNS 等的 CNAME 条目来使其工作。
但是,我尝试使用编程选项在运行时构建 URL,并将服务端点的类型选项设置为“内部”。
var endpoints = RoleEnvironment.Roles["TimeSheetService"].Instances.Select(i => i.InstanceEndpoints["TimeSheetService.EndPoint"]).ToArray();
var r = new Random();
EndpointAddress endPointAddress = new EndpointAddress(String.Format("http://{0}/TimeSheetService.svc", endpoints[r.Next(endpoints.Count() - 1)].IPEndpoint));
var factory = new ChannelFactory<TimeSheetProxy.ITimeSheet>("BasicHttpBinding_ITimeSheet");var client = factory.CreateChannel(endPointAddress);TimeSheetUI.TimeSheetProxy.TimeSheet[] ts = client.DisplayTimeSheets();
上面的代码工作正常,没有问题。但不确定这是否是一种优雅的完成方式!
找到上述解决方案@http: //lab.studiopesec.com/azure-applications-101-part-ii/