Tag: net.tcp

如何解决“ChannelDispatcher无法打开其IChannelListener”错误?

我正在尝试在Windows服务中托管的WCF和我的服务GUI之间进行通信。 问题是当我尝试执行OperationContract方法时,我得到了 “’net.tcp:// localhost:7771 / MyService’中的ChannelDispatcher与合同’”IContract“’无法打开其IChannelListener。” 我的app.conf看起来像这样: 端口7771正在侦听(使用netstat检查),svcutil能够为我生成配置。 任何建议,将不胜感激。 从exception堆栈跟踪 Server stack trace: at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter) at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc) at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs) at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage […]

检测WCF中的套接字断开连接

我们正在构建一个WCF服务器(.NET 4.0)。 它只会使用net.tcp传输。 当客户端关闭TCP连接时,服务器将获取未处理的CommunicationException,并终止。 Q1。 如何处理CommunicationException以便服务器不会终止并继续为其他客户端提供服务? Q2。 在处理程序中,如何获取已中止的会话的SessionId? 我需要这样做来清理一些特定于会话的数据。 提前致谢! PS连接是通过Internet进行的,因此无论客户端是否正常断开连接,都可以随时关闭套接字。

如何检查net.tcp WCF服务的可用性

我的WCF服务器需要定期上下移动,客户端有时会使用服务器,但如果它关闭,客户端就会忽略它。 因此,每次我需要使用服务器服务时,我都会检查连接状态,如果它没有打开,我打开它。 问题是,如果我在服务器关闭时尝试打开,则会出现性能下降的延迟。 我的问题是,有没有办法做某种myClient.CanOpen() ? 所以我知道是否有任何意义打开与服务器的连接。

找不到与scheme net.tcp匹配的基址

当我尝试设置双工模式通道时,我已将文件传输服务从basicHttpBinding移动到netTcpBinding。 我还启动了net.tcp端口共享服务。 我目前在dev并且在xp框上自我托管,直到我们将应用程序移动到开发服务器。 所以,就目前而言,我无法访问IIS。 在配置我的服务之后: 而且,我的约束如下: 当我正确浏览到SVC文件时,我得到了以下错误: 无法找到与绑定NetTcpBinding的端点匹配scheme net.tcp的基址。 注册的基地址方案是[http]。 在线阅读表明,为了解决这个问题,我需要将net.tcp绑定添加到IIS中应用程序的绑定。 但是,如果我是自托管并且无法访问IIS,我该怎么办? 顺便说一句,如果您正在阅读此内容并“执行”拥有IIS,请执行以下操作:右键单击IIS中的虚拟目录/应用程序 – >管理应用程序 – >高级设置。 并且,在Enabled Protocols部分中,添加net.tcp。 有任何想法吗? 更新:我以为我有它工作,但它仍然没有工作。 这是我现在拥有的:我仍然得到“找不到与scheme net.tcp匹配的基地址”错误。 我已经更改了所有基地址以反映您的建议。 这就是我现在拥有的: 我用“net.tcp:// localhost:2544”和“net.tcp:// localhost:8001”尝试了这个。 我是否需要在防火墙设置中添加(允许)某些内容? 还有其他建议吗? 这是我的App.config文件中的filetransferservice的mexTcpBinding: 我仍然无法在我的网络应用程序中引用我的FileTransferServiceClient。 再次感谢。