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用于设置元数据发布位置,通常一个服务一个。