问题标签 [wcfserviceclient]

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 回答
47 浏览

unity-container - Unity 解析 WCFServiceClient 并关闭 WCFServiceclient

我们正在使用统一来解决 WCFService 和 WCF 的良好做法说一旦完成就关闭客户端。

但是如果我们使用 unity 何时以及如何关闭 WCFServiceClient?

0 投票
1 回答
994 浏览

c# - 客户端具有多个 IP 地址时的 WCF 服务问题

我需要一些帮助来解决我面临的桌面客户端与托管在 IIS 上的 WCF 服务的通信问题。

我在测试用例中尝试做的事情:

  1. 服务器托管 WSDualHttpBinding 服务
  2. 客户端通过提供包含客户端 IP 地址的回调 uri 来建立与此的连接(调用注册方法)
  3. 一旦建立连接,客户端应用程序就会启动一个网页。用户在文本框中键入一些文本并单击发送。网页将文本发送到所有注册的桌面客户端。

问题:

在第 2 步中,PC 可能有多个 IP 地址(以太网适配器、环回适配器等)。如果在注册调用期间,在回调 url 中发送了来自该列表的 IP,而无法从服务器回调(例如环回适配器 IP),则会引发超时异常。经过几次这样的尝试,服务器不再接受来自客户端的调用(无论是有效 IP 还是其他)。有时会抛出“服务器太忙”异常。

(由于 DNS/WINS 配置问题导致服务器无法将机器名称解析为正确的 IP 地址,我无法在回调 uri 中使用机器的完全限定名称)。

如何重现
:在 IIS 上发布服务器。从具有多个 IP 地址的不同计算机上执行客户端。客户端抛出超时异常,程序在 3 次尝试后退出 b. App.Config 中的参数允许输入正确的 IP 地址(要使用的 IP)。现在,如果程序启动,一切正常。
C。如果我删除了上面指定的这个 IP 地址,从而使用了不正确的 IP,则会再次发生步骤 a。在此模式下运行程序 2-3 次。
d。按照步骤 b 进行更改并运行程序。有时我会遇到超时异常。其他时候,网站会出现。但是,当输入和发送文本时,它不会到达客户端。(即使 Web 服务没有收到任何调用,注册方法仍然有效。发送功能失败,因为 Web 服务上没有注册客户端。

我不确定为什么会发生这种情况以及如何解决它。这是我的 Visual Studio 解决方案 - http://bit.ly/atKfOS

非常感谢任何投入、评论。环境:服务器 - Windows XP (IIS 5)、Windows Server 2008 SP2 x64 (IIS 7)、客户端:Windows XP

谢谢 GC

0 投票
1 回答
1012 浏览

wcf - WCF 使用 REST,有一些绑定问题

我现在真的很困惑,我无法在任何地方得到任何正确的答案。

我的困惑是:

1)SOAP中不是使用wsHttpBinging(增强了basicHttpBinding)而不是REST,REST只使用webHttpBinding吗?

2) 另外,带有 WCF (REST) 的 silverlight 4 是否支持 wsHttpBinding (VS2010)?我读到它在网络上并非无处不在,但我知道 silverlight 4 如何使用 wsHttpBinding 与 REST 一起工作。注意:我使用的是 Factory="System.ServiceModel.Activation.WebServiceHostFactory"。这个出厂设置是否以某种方式绕过了我的 wsHttpBinding 的 web.config 设置以使其与 webHttpBinding 一起使用,并且我认为我的 wsHttpBinding 正在工作?

谢谢你。

0 投票
1 回答
911 浏览

binding - WCF 帮助,如何通过 http 公开服务,通过 net.tcp 调用另一个服务?

我有一个托管在 IIS 中的 WCF .svc 文件。我想使用 basicHTTP 绑定。该服务的工作实际上是通过 net.tcp 调用另一个服务。在本地一切正常,但是当我部署时,我收到了这个错误。

提供的 URI 方案“http”无效;预期“net.tcp”。参数名称:via

这是服务器配置

这是 svcutil 生成的配置

我需要做什么才能正确连接它。我不想通过 http 公开 InternalInterfaceService。我在这里做错了什么?任何提示或建议当然不胜感激。

谢谢,
~ck

0 投票
1 回答
219 浏览

wcf - Using KnowTypeAttribute in WCF Service

I have a situation where I need to pass a list of objects to my service. The objects have to be of type ELEMENT. I have my Element interface defined like so

Then I have my DataContracts inheriting this IElement class Like so . . . .

I also have a KnownType attribute on my Service interface like so

Problem is on the client side, the IElement type is not available on deserialization of service types on client. Any idea what I may be doing wrong here and how I can go about correcting this please?

None

0 投票
6 回答
5531 浏览

c# - 访问 WCF UsernamePasswordValidator 中的当前 InstanceContext

我有一个使用自定义 UsernamePasswordValidator 的 WCF 服务。验证器需要访问我的实体框架上下文。

我想为整个服务调用创建一个 ObjectContext,然后在调用结束时销毁/处置它。所以我创建了一个提供此功能的单例静态类,但是,现在发生的情况是,如果两个服务调用同时发生,其中一个调用会释放单例。

我要么保留对 ObjectContext 的本地引用,在这种情况下,使用它的第二个服务将其视为已释放并抛出错误,或者,我在 Singleton 类周围放置一个包装器属性,只要我需要它,然后我的所有更改都会被抛出离开,因为如果另一个调用已处理它,我将获得该对象的一个​​新实例。

所以基本上我的问题是如何为每个服务调用实例化一个 ObjectContext ?

注意:该实例需要在服务代码和自定义 UsernamePasswordValidator 代码中都可以访问。

我不能只在构造函数中执行此操作或使用 using 语句,因为自定义 UsernamePasswordValidator 无法访问它。有没有办法让每次调用都有一个静态类?这听起来确实不可能,但是解决这个问题的方法是什么?我应该在会话中缓存对象吗?

我的服务托管在 IIS 中。

更新:
所以我已经确定了使用 IExtension 对象在 InstanceContext 中存储状态。但是如何在 UsernamePasswordValidator 中访问当前的 InstanceContext?

0 投票
1 回答
656 浏览

wcf - WCF 客户端 - 只有从 WCF 服务返回的流的前 255 个字节包含值

我的任务是管理一个 ASP.Net WebForms 应用程序,该应用程序与由 Windows 服务托管的 WCF 服务进行通信。用于服务的绑定是 netTcpBinding。

该服务公开了上传和下载“文件”的方法。用户选择上传文件,HttpPostFile.InputSteam 直接作为服务“上传”方法中的参数传递给服务。服务将流作为字节数组保存到数据库[数据库字段数据类型为 varbinary (max)]。

文件下载数据流本质上是相反的过程。从数据库中检索字节;加载到 WCF 服务中的 MemoryStream;然后返回到 Web 应用程序。

我已经在上述操作的每个步骤中捕获了流(发送/接收)中包含的数据 - 在客户端(Web 应用程序)和服务上。我已经遍历并将每个流中包含的字节写到一个平面文件中。

每种情况下的字节数组都是相同的 [byte value; 和流中的字节数],文件下载操作除外。在流从 WCF 服务返回到 Web 应用程序的位置。这里接收到的字节数是正确的,但只填充了前 255 个字节。剩余字节的值为零

我已经对绑定值进行了许多实验性更改 - 在服务的客户端中 - 因为我相信问题一定出在此处。迄今为止,我还没有以任何方式影响返回的字节的状态。客户端和服务的日志不显示任何抛出异常或任何其他问题。

我在为客户端和服务器应用程序设置正确的绑定(和其他配置)属性组合方面没有太多经验——过去依赖于默认值。我们需要将服务和客户端配置为传输允许的最大文件大小。不幸的是,我不能使用 MTOM。

这篇文章和链接,没有给我任何见解。到目前为止,我还没有找到其他有用的信息。

希望有人可以帮助我解决问题。以下是我正在使用的绑定:

客户端 [web.config]:

服务:

0 投票
1 回答
367 浏览

wcf - netTcpBinding 行为 - 重新连接

我有一个使用 netTcpBinding 的 WCF 服务。问题是该服务的主机并不总是处于活动状态,因此当客户端尝试使用该服务时,只要服务器在线,它就会成功。当服务器重新启动时,客户端必须使用 httpBinding 重新建立通道(导致其 netTcpBinding)将解决问题,但我不能使用此绑定。我的问题是:有没有办法在连接到服务时导致 netTcpbinding “行为”像 basicHttpBinding 一样(行为???)(服务代理的每次使用都会导致新的连接建立)??

谢谢,立然

0 投票
1 回答
594 浏览

c# - c# WPF和WCF映射问题

我实际上是在尝试创建一个通过服务引用连接到 WCF 的 wpf 项目,我还在我的 wpf 项目中使用 MVVM 模式,当我在我的 viewModel 的 CTOR 中声明 serviceManager 时出现问题!

我的 view.xaml 告诉我:在 ServiceModel 客户端配置部分中找不到引用合同“UserServiceReferences.IUserManagement”的默认端点元素。这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此合同匹配的端点元素。

这是我的 App.config 文件:

这里是我的 WCF 服务中的 Web.config:

这两个项目在同一个解决方案中。

我迷路了请帮帮我!!!!

0 投票
1 回答
476 浏览

silverlight-4.0 - 从 silverlight 中的 wcf 服务获取结果时出错

我正在使用 silverlight4.0 并使用 WCF 服务,我的功能工作正常,并且在某个时间点出现异常,例如“远程服务器返回错误:未找到”。这是内部异常消息,响应状态代码是“System.Net.HttpStatusCode.NotFound”。任何人都可以为此提供帮助..提前致谢。