我有一个使用tcp的服务,并且我的所有方法都是异步的,所以我实现了Begin/End方法(我使用C#4.0)。如果我只修改我的app.confing以将传输模式设置为Streamed而不是Buffered,当我在客户端中进行异步调用时,应用程序将永远等待响应。但是,如果我将传输模式更改为缓冲,则它可以正常工作。我还注意到我需要在缓冲传输模式下使用reliableSession,因为当我启动应用程序时,我收到错误10061,目标服务主动拒绝连接。我知道如果我想使用流式传输模式我不需要禁用dereliableSession,所以我想问是否可以使用异步方法的流式传输模式。谢谢。编辑:我正在尝
我是WCF的新手,我了解到使用WCF可以通过各种协议(protocol)和消息格式在两个或多个分布式系统之间进行通信。到目前为止,出于练习目的,我使用了basicHttpBinding。但出于演示目的,我想真正确定在哪里使用netTcpBinding等。请告诉我net.TcpBinding变得真正有用并且几乎必须选择的场景。据我所知,WCF相对于它的传统各种对应物(如ASP.NetWeb服务)的主要优势之一是它可以通过其他传统Web服务无法通过的各种协议(protocol)进行无缝通信。是真的吗?请澄清。 最佳答案 针对不同目标
我不熟悉创建WCF服务。我创建了一个使用TCP的WCF服务。该服务在IIS7上运行。在解决方案文件中,我有一个用于测试服务的客户端项目。我使用TCP端点运行客户端项目,它访问服务,一切正常。现在,我想从一个新的独立项目访问我的TCP服务,该项目不像客户端项目那样属于服务解决方案的一部分。我在VS2008中新建了一个项目,点击AddServiceReference,输入net.tcp地址(net.tcp//......),点击go。返回一个错误,指出“元数据包含无法解析的引用。”IIS7中是否还有其他需要配置的内容?我是否正确地添加了对使用TCP的服务的引用?如果需要,我可以提供更多信息
我在ServerA上部署了一个WCF服务。我正在使用tcp绑定(bind)。我还有一个由ServerB和ServerC组成的网络场。当我在任何服务器ServerB或ServerC上部署使用WCF服务的应用程序时,在尝试调用我的服务时出现错误。我添加了跟踪,这是我得到的错误:Thesocketconnectionwasaborted.Thiscouldbecausedbyanerrorprocessingyourmessageorareceivetimeoutbeingexceededbytheremotehost,oranunderlyingnetworkresourceissue.L
我想监听服务器上的端口,并安全地处理文件。在.NET3.5中是否有任何标准的收听方式或任何建议。数据来自第三方工具,我们可以将出站路由到任何端口。任何想法和建议。可以使用WCF吗? 最佳答案 不仅可以使用WCF,我强烈推荐它而不是更低级的建议,除非有一个非常具体的原因你不能使用WCF(我无法想象有大量的配置选项)。您有不同的层,您可以在WCF中应用安全性,消息级别意味着内容被加密和校验和,传输意味着底层连接在HTTPS上使用SSL加密,例如。ThispostbyAaronSkonnard很好地列出了不同的WCF绑定(bind)及其支
我必须开发一个文件服务器服务,将文件从指定位置传输到其客户端。客户端启动时,向服务器请求当前日期的文件。服务器将这些文件传输给客户端。现在约束为1.应用在内网运行。2.需要一次传输多个文件。3.文件大小可能以GB为单位。4.系统在实时环境中运行。因此需要适当的交易和确认。5..net应用程序开发。5.可不止一位客户出席。现在请帮助决定我选择开发文件服务器的体系结构和.net技术(WCF(Http绑定(bind))WCF(nettcp绑定(bind)),Socket编程(我想使用WCF))。请引用一些示例应用程序。 最佳答案 如果您在
正如我的标题所写,背景:我有2种不同类型的应用程序(WPF-silverlight),它们可以相互通信——医生应用程序和患者应用程序——但这并不意味着只有2个应用程序会运行,例如:我可以运行3个医生应用程序和7个病人应用程序。所有这些应用程序都通过tcp连接使用wcf进行通信。通信是实时的(如Messenger应用程序)流每次有应用程序在线(运行)时,我都会在wcf上注册它的连接,因为我需要让其他应用程序知道(实时)有新客户端连接或有新客户端断开连接。问题:可以让其他应用程序知道有传入的应用程序/客户端,但我的问题是,如果此客户端已断开连接,如何让其他应用知道,如果用户正确关闭应用程序
我们的WCF解决方案有一个自定义监听器,它继承自ChannelListenerBase.我们有一个行为不端的客户端(超出我们的控制),它按照以下几行与我们进行TCP对话:SYNSYN,ACKRST基本上,他们试图在套接字建立、失败和关闭套接字之前对其执行操作。在我们的OnEndAcceptChannel代码,我们最终无法创建channel,因为当我们到达那里时底层Socket已经关闭,我们得到一个SocketException。这似乎杀死了听众,阻止它接受进一步的连接。来自OnEndAcceptChannel,我们已经尝试返回null,抛出异常,并对监听器进行故障处理,以便它可以在调用
我有一个异步服务,我必须将一个文件从客户端传输到该服务。该服务被配置为使用流式传输模式,因此如果我没记错的话,文件会在不等待加载所有文件的情况下传输。我想知道如何知道文件是否已完成,因为我需要转换此流才能将此流转换为byte[]以将文件存储在数据库中。我问这个是因为当我从客户端接收服务中的文件时,我收到一个只读流,具有可用的长度属性,我无法将此流转换为字节数组。谢谢。 最佳答案 为什么不创建内存流然后将字节读入数组?MemoryStreamms=newMemoryStream(dataHERE)byte[]passing=ms.Re
我正在尝试连接到服务器上的WCF服务。我已经在服务器的IIS中设置了一个站点,并将EnabledProtocols设置为http,net.tcp。此外,我还像这样配置了SiteBindings:http>端口:80>IP地址:*net.tcp>绑定(bind)信息:808.*在Authentication下,我启用了AnonymousAuthentication和WindowsAuthentication。服务Net.TcpListenerAdapter和Net.TcpPortSharingService也在运行。当我使用浏览器(通过http)调用网络服务时,一切正常,我可以列出wsd