【发布时间】:2017-06-16 09:38:00
【问题描述】:
我已经在地址上公开了 WCF 服务:
http://localhost/service/
如果我尝试从该地址获取 WSDL,它可以正常工作。
我还向服务添加了端点——这就是问题所在。我无法从该端点获取 WSDL。 我在浏览器中试过这个:
http://localhost/service/en1
但它没有返回任何东西。
我不明白怎么了?
我的服务很简单,一切都是用代码写的:
ServiceHost host = new ServiceHost(typeof(CalculatorService), new Uri[] { new Uri("http://localhost/service/") });
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
host.Description.Behaviors.Add(smb);
host.AddServiceEndpoint(typeof(ICalculator), new BasicHttpBinding(), "en1");
host.Open();
【问题讨论】:
-
你还需要设置
HttpGetUrl行为的属性,比如smb.HttpGetUrl = new Uri(EndpointAddress); -
是否可以为多个端点设置HttpGetUrl?
-
嗯,
HttpGetUrl用于设置元数据发布的位置,通常每个操作合约/服务一个。 -
感谢您的回答:)
-
请发表您的评论作为答案。