Привет, у меня есть служба выглядит примерно так.WCF игнорировать дуплекс в webhttpbinding
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, ConcurrencyMode = ConcurrencyMode.Multiple, UseSynchronizationContext = false)]
public class Service : IService
{
public string test(string value)
{
IServiceCallBack callback = OperationContext.Current.GetCallbackChannel<IServiceCallBack>();
callback.callBackTest("callBack response");
return value + ", normal response";
}
}
[ServiceContract(CallbackContract = typeof(IServiceCallBack))]
public interface IService
{
[OperationContract]
[WebInvoke(
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json,
Method = "POST")]
string test(string value);
}
public interface IServiceCallBack
{
[OperationContract]
void callBackTest(string value);
}
Теперь мои потребности, что два различных привязки будут использовать ту же самую услугу (если это возможно) я знаю, что я могу сделать целых два раздельных услуги для этой работы, но я скорее не потому, что два привязок будут использовать те же функции
Мой сценарий является то, что у нас есть клиенты, которые яблочно устройства, которые будут использовать клиент WebHttpBinding
и окна, которые будут использовать NetTcpBinding
Теперь я хочу клиент окна в иметь возможность использовать обратный вызов, но с яблочными устройствами я просто хочу игнорировать обратный вызов.
если я пытаюсь разместить службу с WebHttpBinding
я получаю эту ошибку
base = {"Contract requires Duplex,
but Binding 'WebHttpBinding' doesn't
support it or isn't configured properly to support it."}
Для меня это означает, что она не будет работать, но, возможно, может быть настроена на работу? , или они означают, что мне нужно настроить и удалить мой обратный вызов для этого?
Так можно ли игнорировать обратный вызов для WebHttpBinding
и просто получать нормальные ответы?
HTTP по своей природе не является дуплекс - единственный дуплексный HTTP привязки в WCF является 'DualWsHttpBinding'. Я думаю, что самый простой способ для вас в этом случае - создать две службы - одну, которая выполняет обратные вызовы, а другая - нет. – Tim