duplex-channel

    0热度

    1回答

    我在自定义通道上实现了IDuplexSessionChannel,因为我使用了tcpTransport。在那个自定义通道中,我缓存了服务调用响应(客户端缓存)。但它有错误。在IRequestChannel中,它工作正常。如何在TryMessage方法中更改消息。我的代码: public Message Receive(TimeSpan timeout) { Message r

    2热度

    2回答

    我在C#中使用WCF 4。我正在使用InstanceContextMode设置为单个。实现我的合约的类的实例是使用构造函数创建的,该构造函数接受托管服务的对象的引用。在创建和托管服务主机时传递服务对象。 服务实现代码: [ServiceBehavior(UseSynchronizationContext = false, InstanceContextMode = InstanceCon

    2热度

    1回答

    我可以使用行为来附加IParameterInspector到ClientRuntime中的每个操作,也可以附加到服务端DispatchRuntime中的每个操作。但似乎这只能从客户端到服务。 我也希望能够在服务回调中附加一个IParameterInspector到客户端,如上所示,但是我找不到任何可扩展点来做到这一点。 任何想法?

    0热度

    1回答

    我们在域内运行双信道服务。 我们有端口20120上的TCP绑定和端口20121上的HTTP绑定。 在DMZ(web)中,我们想要访问这个WCF服务。 防火墙似乎是从网络打开的服务。 使用telnet,我可以访问这两个端口,我也能够浏览Web浏览器的WSDL。 现在,当我尝试从Web应用程序连接到服务(它使用TcpBinding,并且我无法轻松地将其更改为HttpBinding而无需重新部署新的二进

    8热度

    1回答

    我可以分别使用IClientMessageInspector,IDispatchMessageInspector检查客户端和服务器端的WCF消息。但在Duplex通信中,不清楚如何在从服务器到客户端的回调中执行此操作(关于该主题的文档也不多)。 有关如何实现此功能的任何想法?

    0热度

    2回答

    (!?哈看我做什么有) 我有一个系统,其中一个服务器推出从DB中央信息了许多客户的DB(通过互联网跨域) ,并定期在服务器上调用服务。这必须能够承受间歇连接,即队列消息。 我已经创建了一个使用双工MSMQ的开发版本,我尝试应用传输安全性。根据我所做的阅读,看起来如下: MSMQ使用AD Windows安全性,这是不相关的跨域。 由于双工的性质,每个客户端也是一个有效的服务器。这意味着如果我想使用S

    1热度

    1回答

    使用TypeGenerator类 public class TypeGenerator { /// <summary> /// internal cache for already generated types /// </summary> private static Dictionary<Type, Type> asyncTypeCa

    0热度

    2回答

    我目前正在使用统一容器和WCF服务的PRISM应用程序。 在模块(与WCF代理),我注册的ChannelFactory为WCF客户端如下: InstanceContext instanceContext = new InstanceContext(new TradingPlatformCallback()); unityContainer.RegisterType<DuplexChannelFa

    3热度

    4回答

    我正在为实验室改变航运,希望能帮助诊断我们看到的一些奇怪的通道故障怪异。有一个测试应用程序使用DuplexChannelFactory连接到一对夫妇的Windows服务,出于某种原因,这个测试应用程序的通道看起来似乎有点错误。我计划在那里实施一些重试逻辑,但是弄清楚他们为什么会发生故障将会很好。 我知道,通道工厂和代理对象都实现了大量的接口,我用反射镜通过其中的一些爬行,但我还没有找到喜欢什么,我

    2热度

    1回答

    我有正常的net.tcp WCF服务客户端,并且有规则的net.tcp 双工(即带回调)WCF服务客户端。我已经实施了一些逻辑,以便在服务出现故障的情况下不断重新实现连接。 它们以完全相同的方法创建: FooServiceClient Create() { var client = new FooServiceClient(ChannelBinding); client.Fa