2010-07-05 117 views
0

我正在使用ASP.NET安全模型的Web服务(即将AspNetCompatibilityRequirements设置为允许)。和许多人一样,我因为mexHttpBinding需要它,只有这样,才能避开它是从每个服务中删除MEX终结点这里描述需要一个错误,说的匿名访问:IMetadataExchange端点实际上做了什么?

WCF - Windows authentication - Security settings require Anonymous

我想通过删除mex端点,我将不再能够生成WSDL或从Visual Studio添加对服务的引用,但令我惊讶的是一切仍然有效。我很快搜索到了“mex绑定”,但大多数网站只是说它是针对“元数据交换”,而没有详细说明它的实际功能。

谁能告诉我卸下mex绑定的副作用是什么?

回答

0

如果您的WCF服务没有公开服务元数据,则无法从Visual Studio(添加服务引用)中为其添加服务引用,也不能向其他客户端询问其服务的方法和数据它需要。

删除元数据交换(mex)基本上呈现服务“不可见”,几乎 - 潜在的调用者必须找到其他方式(例如通过提供WSDL文件,或通过获得与他的客户端的类库程序集可以使用)关于服务可以做什么以及如何做。

对于高风险环境,这可能是可以的,但大多数情况下,能够询问服务并通过元数据描述自己是您希望启用的功能。这实际上是基于SOAP服务的主要优点之一 - 凭借元数据,它可以描述自身,操作以及所需的所有数据结构。该功能用于使该服务非常易于调用 - 您只需指向mex端点,即可找到所需的关于该服务的所有信息。

0

如果没有元数据交换,您将无法使用svcutil.exe自动生成代理类。

相关问题