C# WCF主机服务,不带扩展,元数据可在具有已知合约的客户端上使用

C# WCF主机服务,不带扩展,元数据可在具有已知合约的客户端上使用,c#,wcf,C#,Wcf,是否有办法托管wcf服务: 无延伸 具有相对端点地址(应自动知道服务器地址) 没有元数据(合同可供客户使用) 碱基结合 如果有些事情无法实现,我会接受。已经尝试过一种方法,但失败了 无元数据->。如果您在IIS中托管WCF(SOAP)服务,则需要一个service.svc文件(或至少一个扩展名为.svc的端点,在.NET 4中使用无文件服务激活),以便IIS了解这是一个WCF SOAP端点,并相应地路由请求。在IIS中,服务所在的虚拟目录基本上决定了服务端点的地址,因此您可以使用相对地址(相

是否有办法托管wcf服务:

  • 无延伸
  • 具有相对端点地址(应自动知道服务器地址)
  • 没有元数据(合同可供客户使用)
  • 碱基结合
如果有些事情无法实现,我会接受。已经尝试过一种方法,但失败了 无元数据->。

如果您在IIS中托管WCF(SOAP)服务,则需要一个
service.svc
文件(或至少一个扩展名为
.svc
的端点,在.NET 4中使用无文件服务激活),以便IIS了解这是一个WCF SOAP端点,并相应地路由请求。在IIS中,服务所在的虚拟目录基本上决定了服务端点的地址,因此您可以使用相对地址(相对于虚拟目录)来定义服务的端点地址

如果您在托管应用程序(Windows NT服务或普通的.NET控制台应用程序)中自行托管WCF服务,则您不需要
.svc
文件-托管应用程序处理请求-但同时,由于没有“托管基础设施”,您需要定义**完全限定“端点地址-不能仅使用相对地址(相对于什么??)

因此,您可以有相对地址(在IIS中,但使用
.svc
文件),也可以没有扩展名(使用自托管,但必须提供完全限定的服务端点地址)。你不能同时拥有这两个


您的服务端点是否拥有并公开元数据只是将
ServiceMetaData
服务行为添加(或不添加)到您的服务定义中的问题。

谢谢您的回答。有一个问题仍然悬而未决。我是否可以在不定义元数据端点的情况下使用该服务(该合同可用于客户端)。@Abc:当然可以。仅当您希望允许交互式发现时才需要元数据端点。如果客户机知道合同和所有相关信息(端点地址和绑定),那么客户机可以连接并使用服务-没有问题。