问题标签 [nettcpbinding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
588 浏览

wcf - 如何使用 net.tcp 进行双工检查 Silverlight 客户端的连接是否仍然有效?

我正在使用 net.tcp 和 netTcpBinding 将 WCF 服务放在一起,以便与我的 Silverlight 客户端进行双工通信。我从 Silverlight 应用程序调用该服务,该服务调用另一个服务器,将 WCF 服务类中的回调方法传递给它。远程服务器多次回调,每次回调时,WCF 服务都会使用回调通道将数据发送到 Silverlight 客户端。大多数时候这一切都很好。

如果用户提出一个大请求,我会在大量回调已经工作后得到一个 TimeoutException。(显然,在其他地方还有一些工作可以防止这种情况发生,但我想首先加强服务。)

在尝试回调 Silverlight 客户端之前,我希望进行某种“if (client.ConnectionState == faulted)”检查,但我似乎找不到保持连接状态的对象。有吗?我是不是从错误的角度来处理这个问题?

这是我第一次尝试服务 net.tcp 和双工。我刚搬家,我的 WCF 圣经还在一个盒子里。某处。:-) 所以,我不能做我通常的背景阅读。

任何指点将不胜感激。这是一些裸代码,以防我的描述太糊涂:

0 投票
1 回答
519 浏览

wcf - 在自托管 WCF 和 MVC 中执行相同任务时的巨大性能差异

我创建了一个自定义线程池,它接受来自客户端的作业、处理它并返回结果。目前这是在 MVC 应用程序中运行的。如果用户使用表单上传要完成的作业,服务器将对其进行处理并返回报告。处理涉及向多个外部服务发送 SOAP 请求并累积响应。

最近我创建了一个基于 Windows 的应用程序,它可以自动执行上传任务,还可以处理作业当前状态的回调。因此,我使用 netTCPBinding 和回调合同实现了 WCF 服务并将其托管在控制台应用程序中。一切运行良好,Windows 应用程序正在接收回调等。但主要问题是性能。通过 WCF 请求处理相同作业的时间是通过 MVC 应用程序手动上传的 4 倍。

最初我怀疑它是通信滞后,因此我实现了一个秒表来查找每个步骤的持续时间。令人惊讶的是,延迟不是由于通信延迟,它是最后一个向外部服务发出 SOAP 请求的例程。在我看来,这与从客户端到服务器的作业传输模式无关,并且它也在自定义线程池中的单独线程中运行。

我在 MVC 应用程序和 WCF 服务中使用相同的 API。逻辑,日常一切都是一样的。我的第二个疑问是 WCF 是否会暂停/暂停正在运行的线程来处理新请求?

任何人都可以洞察可能是什么原因吗?我可以根据需要提供更多信息。

在此先感谢您的帮助

0 投票
1 回答
1811 浏览

wcf - TCP 连接和防火墙

在 Internet 上,如果您需要快速、安全的服务器到服务器通信,并且可以指定打开哪些防火墙端口,NetTcpBinding 可以证明是非常有价值的。

a) 文本是否暗示使用其他一些连接协议,例如 HTTP,我们不需要检查开放的防火墙端口?

b) 为什么NetTcpBinding只对服务器到服务器的通信有用,而对客户端到服务器的通信没有用?

谢谢你

0 投票
1 回答
2034 浏览

jquery - 使用 netTcpBinding 从 WCF 服务返回 JSON 数据

我正在创建一个 WCF 服务,我想从中返回 JSON 数据。我还想调用服务并使用 jQuery 检索数据。我的问题是我的公司在托管 WCF 项目时只允许 netTcpBinding。我读过的有关从 WCF 返回 JSON 数据的任何内容都指向使用 webHttpBinding。所以

  1. 是否可以从使用 netTcpBinding 的 WCF 服务返回 JSON?
  2. 我可以使用指向同一服务的不同绑定添加多个端点吗?
  3. 如果我有一个包含其他子类的复杂类,可以使用 JSON 返回吗?

(顺便说一句,我正在使用Web 服务软件工厂来创建服务,所以我不确定这是否会使使用消息合同和其他所有内容变得更加困难)。

TIA。

0 投票
1 回答
2705 浏览

wcf - 无法通过 WCF 发送大型消息

我使用 WCF 发送各种消息,并且这条消息特别是大约 3200000 字节加上一些字符串和标题。大paylode是通过另一个服务从主机检索的序列化对象,我试图在各个方面模仿其配置。

我使用 netTcp 绑定来提高性能,我们使用了很多回调。我已将客户端和服务器端的所有选项都设置为最高级别。

我在客户端收到此非描述性错误消息:

套接字连接被中止。这可能是由于处理您的消息时出错或远程主机超出接收超时,或者是潜在的网络资源问题造成的。本地套接字超时为“00:00:59.9979996”。

和内部扩展:

现有连接被远程主机强行关闭

运行跟踪会带来更多信息(堆栈跟踪顶部):

System.ServiceModel.Channels.SocketConnection.Write(Byte[] buffer, Int32 offset, Int32 size, Boolean immediate, TimeSpan timeout) 堆栈跟踪内部扩展顶部:System.Net.Sockets.Socket.Send(Byte[] buffer, Int32偏移量,Int32 大小,SocketFlags socketFlags)

堆栈跟踪内部异常的顶部:

System.Net.Sockets.Socket.Send(Byte[] 缓冲区,Int32 偏移量,Int32 大小,SocketFlags socketFlags)

如果我将有效负载设置为 null(不发送 3.2 MB 对象),则消息会毫不费力地通过。

对象来自另一个服务的事实与我的问题有什么关系吗?在我看来,问题在于消息的大小,但到目前为止,增加配置中的任何选项对我没有帮助。

我试图在没有运气的情况下设置客户端。使用流式传输会导致切换到请求/响应或删除所有回调......

有任何想法吗?

0 投票
1 回答
352 浏览

wcf - WCF TCP 绑定端点的可远程访问主机名

定义为的本地端点net.tcp://localhost:<port>/MyRemoteApp只能从本地系统访问。

  • 我应该使用哪个主机名或 IP 来确保可以从所有远程网络接口访问 WCF 服务?
  • 检索此类名称的最兼容方法是什么?
  • 还是我需要多个端点?
0 投票
1 回答
347 浏览

authentication - 将 WCF TCP 端点限制为管理员

如何将可远程访问的 WCF 端点的访问限制为本地/域管理员


编辑:添加[PrincipalPermission(SecurityAction.Demand, Name = "AdminUser")]到我的 WCF 通道方法实现后,尝试从我的客户端调用服务方法会抛出一个SecurityAccessDeniedException,这是进度。

如何让 Windows 提示用户输入新的用户详细信息(或安全令牌),以便我可以以正确的用户身份重新启动 WCF 连接?

0 投票
3 回答
998 浏览

wcf - 受限远程 WCF 服务:Windows 身份验证提示

我想让远程管理员(使用本地或域凭据)通过 WCF TCP 绑定控制我的 Windows 服务。为此,我需要以管理员身份验证远程用户。我可以检查主要用户/角色,但我不知道如何提示远程用户提供正确的用户详细信息/令牌。

这与我之前关于Restricting WCF TCP endpoint to Administrators的问题有关。而不是添加[PrincipalPermission(SecurityAction.Demand, Role = "Administrator")]到我的受限服务方法并捕获 a SecurityException,似乎我可以通过以下方式检查它:

如果返回拒绝访问结果,如何提示远程用户进行 Windows 身份验证,以便我可以作为不同的主体重新启动连接?

当然,需要对远程用户的客户端应用程序进行更改。也许有一种更清洁的 WCF 方法来做到这一点?


编辑:搜索“.net impersonation”让我在 CodeProject 上找到了这个。还没有机会看,但这可能是要走的路。

0 投票
0 回答
2689 浏览

wcf - LN 中客户端的 netTCPBinding 上的 WCF 服务超时,对美国的客户端运行良好

我有一个通过在纽约的服务器上运行的 TCPbinding 公开的 WCF 服务。我连接到该服务并从从美洲连接到该服务的客户那里获取结果,但对于来自伦敦/欧洲的客户有问题。我不太确定为什么会发生此超时问题,但以下是客户端和服务器设置。

服务器

我的客户在 C# 代码中有以下设置

有 WCF 超时问题经验的人可以对此有所了解吗?我一直在尝试关注各种论坛上的大量帖子,但我收集到的理解以及以代码和配置的形式实现并没有多大帮助。

TIA,沙拉万

0 投票
5 回答
25612 浏览

c# - WCF TCP 比 HTTP 快多少

我知道对于 WCF,TCP 比 HTTP 快,但我很想知道多少。我有一个使用 HTTP 的大型应用程序的性能问题,并且正在考虑迁移到 netTcp 是否会产生足够的性能改进以使投资值得。

有谁知道 netTCP 发送的数据量与 Http 绑定的区别?