我在地址上公开了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();
答案 0 :(得分:2)
您还需要设置行为的HttpGetUrl
属性,如下所示:
smb.HttpGetUrl = new Uri(EndpointAddress);
HttpGetUrl
用于设置元数据发布的位置,通常是每个服务一个。