我有一个带有操作合同的 wcf 服务,如下所示。
[OperationContract]
bool IsUserAvailable(string userName);
[OperationContract]
[WebInvoke(
Method = "GET",
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "CreateUser?userId={userId}")]
bool CreateUser(string userId);
注意一个是用 webInvoke 属性定义的。我有 2 个使用这些方法的应用程序。应用程序 1 通过 http web 请求调用 createUser 方法,应用程序 2(wcf 客户端)直接调用 IsUserAvailable。如果我尝试在下面的 web.config 中定义基本 http 绑定和 webhttpBinding - 我会遇到问题。(绑定实例已经关联到监听 URI 'http://localhost:xxxx/BookStore.svc'。如果两个端点想要共享同一个 ListenUri,它们也必须共享同一个绑定对象实例。两个冲突的端点要么在 AddServiceEndpoint() 调用中指定,要么在配置文件中指定,要么是 AddServiceEndpoint() 和配置的组合。)
<endpoint binding="basicHttpBinding" contract="BookStore.IBook" address=""></endpoint>
<endpoint address=""
binding="webHttpBinding"
behaviorConfiguration="webBehavior"
contract="BookStore.IBook" />
<endpoint address="mex"
binding="mexHttpBinding"
behaviorConfiguration="mexBehavior"
contract="IMetadataExchange" />
我的问题是 - 我怎样才能在不遇到问题的情况下对同一份合同进行不同的绑定。如果我没有指定 basichttp 绑定,我会收到错误消息(没有端点监听)