WCF 端点不返回 WSDL
WCF endpoint not returning WSDL
我已经在地址上公开了 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
用于设置元数据发布位置,通常一个服务一个。
我已经在地址上公开了 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
用于设置元数据发布位置,通常一个服务一个。