我的理解是,MEX和WSDL是两种不同的发布元数据的方式.为了让客户选择他们喜欢的那个,我想同时启用它们.但我不完全确定如何.
我的webconfig只包含:
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
当浏览到它时显示默认页面,其中包含指向serviceblahblah?wsdl的链接,这表明我只发布了WSDL.
我的问题是,这是使用MEX,如果不是我怎样才能发布MEX,我应该发布两者吗?
我正在使用basichttpsbinding,如果这有任何区别.
当浏览到它时显示默认页面,其中包含指向serviceblahblah?wsdl的链接,这表明我只发布了WSDL.
不,您只是访问 WSDL.您希望在该URL上看到什么?;-)
该httpGetEnabled属性允许发布WSDL元数据.如mexHttpBinding文档和入门中所示,如果要公开MEX,还必须公开可以访问的MEX端点:
<!-- the mex endpoint is explosed[sic] at
http://localhost/servicemodelsamples/service.svc/mex -->
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
Run Code Online (Sandbox Code Playgroud)
发现您的服务时,客户端将尝试首先调用/mex端点.如果没有找到,他们将请求WSDL.当您在Visual Studio中单击"添加服务引用"并输入纯服务URL时,您可以使用Fiddler看到这一点,我确信这种行为记录在某处.
| 归档时间: |
|
| 查看次数: |
2581 次 |
| 最近记录: |