WCF端点不返回WSDL
问题描述:
我的地址暴露WCF服务:如果我尝试从该地址获取WSDLWCF端点不返回WSDL
http://localhost/service/
,它工作正常。
我也添加了端点到服务 - 这里是问题。我无法从该端点获取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'属性,如'smb.HttpGetUrl = new Uri(EndpointAddress);' –
是否可以为多个端点设置HttpGetUrl? – FrenkyB
好吧,'HttpGetUrl'用于设置元数据发布的位置,通常每个操作合约/服务一个。 –