问题标签 [channelfactory]
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.
wcf - WCF ChannelFactory 反对 SOA 原则?
是否共享一个包含 wcf 接口和数据合同的项目,并通过 ChannelFactory 使用这些来使用违反 SOA 原则的服务?
我的架构师建议最好使用添加服务参考生成代理。
c# - 通过 NetNamedPipeBinding 连接到 WCF 服务的问题
我无法弄清楚如何让命名管道 WCF 服务正常工作。该服务与可执行文件位于单独的程序集中。
配置如下所示:
我正在使用 ChannelFactory 创建代理来访问服务主机:
我不确定创建 ChannelFactory 时我做错了什么。它似乎在配置中找不到“channel1”。当我手动创建绑定并将其传递给 ChannelFactory 构造函数时,会创建工厂和代理,但对 LoadData() 的调用失败(超时)。
谁能看到我在这里做错了什么?
编辑:我在 app.config 上方进行了编辑,以确保两个端点具有完全相同的数据。这解决了我的 Channelfactory 问题。但是,如上所述对服务方法的调用仍然超时。
wcf - WCF 中的通道工厂
大家好,我是 WCF 的新手,我想知道我是否使用通道工厂,如果我对服务合同进行任何更改,这些更改是否会在客户端系统中自动更新???如果更改自动更新如何? ??
.net - WCF:不关闭 ChannelFactory 与不断重新创建 ChannelFactory 并关闭它之间的比较
我有一个 WCF 服务,我在我的代码中使用它并生成为 ChannelFactory 类。我知道使用 WCF 的正确方法是创建 ChannelFactory(我们称之为 AwesomeClient),完成工作,然后在其上调用 Close()。这是我的片段:
但是,我希望 DoSomething 会被非常频繁地调用(比如每分钟 10 次?),所以我得到的建议是将 ChannelFactory 实例化为静态实例,并始终重用同一个实例,而不必关闭它(因为这比总是重新创建 ChannelFactory 然后关闭它“便宜”)。
我在这里征求第二意见,谁能告诉我为什么不调用 Close 并重用静态实例是个好主意?或者我应该坚持为每次通话重新创建 ChannelFactory 和 Close() 吗?
c# - 如何在没有 ServiceHost 类的情况下使用 WCF 创建简单的 Web 服务器?
我已经开始学习 WCF,并希望通过直接使用通道堆栈创建一个简单的 Web 服务器来了解其内部结构。我在网上找到了很多理论,但我希望看到一个可以使用任何浏览器测试的接收和响应 httprequest 的工作示例代码。我希望通过组装绑定元素一直响应请求来显示自定义绑定的设置。
c# - 创建 WCF ChannelFactory
我正在尝试将现有的 .NET Remoting 应用程序转换为 WCF。服务器和客户端共享公共接口,所有对象都是服务器激活的对象。
在 WCF 世界中,这类似于创建每次调用服务并ChannelFactory<T>
用于创建代理。我正在为如何正确创建ChannelFactory<T>
ASP.NET 客户端而苦苦挣扎。
出于性能原因,我想缓存ChannelFactory<T>
对象并在每次调用服务时创建通道。在 .NET 远程处理的日子里,曾经有RemotingConfiguration.GetRegisteredWellknownClientTypes()
一种方法可以获取一组客户端对象,然后我可以缓存这些对象。看来,在 WCF 世界中没有这样的事情,尽管我能够从配置文件中获取端点集合。
现在这是我认为可行的方法。我可以创建这样的东西:
ChannelFactory<T>
我认为上面的代码会起作用,但如果它不在查找中,我有点担心多个线程试图添加新对象。由于我使用的是.NET 4.0,所以我正在考虑使用ConcurrentDictionary
和使用GetOrAdd()
方法或TryGetValue()
先使用方法检查是否ChannelFactory<T>
存在,然后再使用GetOrAdd()
方法。不确定性能ConcurrentDictionary.TryGetValue()
和ConcurrentDictionary.GetOrAdd()
方法。
另一个小问题是我是否需要ChannelFactory.Close()
在 ASP.NET 应用程序结束后调用通道工厂对象的方法,或者我可以让 .NET 框架自行处理通道工厂对象。通过 using 方法调用服务方法后,代理通道将始终关闭((IChannel)proxy).Close()
。
silverlight - Silverlight中如何动态设置wcf服务的服务器名
我需要部署一个 silverlight 4 解决方案,它使用来自 WCF 服务的数据。挑战在于这将是一个生产安装,因此我无法控制服务的服务器名称,并且银灯应用程序不会与 WCF 安装在同一台服务器上。
到目前为止,从这条路开始是我想出的:
我将不得不通过 initParams 将 WCF 的服务器名称传递给我的 silverligth 应用程序。
在我拥有的 aspx 文件中
然后在 app.xaml.cs 中调用参数:
我在应用程序启动中调用了它,因此参数将在整个应用程序的范围内。
现在在主页中,我将此参数分配给一个变量
dswconnection = initParams["servicepoint"];
然后每当我查询服务时,我都会设置地址以覆盖服务 referencenece.config 文件中的默认值
我的问题是......这是最好的方法,还是当您不知道该服务器名称可能是什么时,是否有另一种方法可以动态识别服务的服务器名称。这是我无法使用某些功能来检测 channelfactory 中的主机名或地址的关键点,因为 silverlight 应用程序将驻留在与 WCF 不同的主机上。
现在,传递给 initparams 的值存储在 javascript 读取的配置文件中,然后将其分配为值。在我的代码中,为了简洁起见,我对其进行了硬编码。
感谢您的任何建议。
c# - 与 REST 服务内的 REST 服务通信
我使用以下代码与 REST 服务进行通信:
它在简单的测试应用程序中运行良好,但在我的实际应用程序中,我想在我自己的 REST 服务中调用它:如果调用了我的 REST 服务,我的服务应该调用另一个 REST 服务。
事情变得很奇怪。在这种情况下,上面的代码不起作用,因为如果将它放在服务方法中,它会发送 POST 请求而不是 GET 请求,这当然会导致“方法不允许”错误。我的代码中的任何地方都没有属性 WebInvoke。
HTTP请求方式怎么会变?
wcf - WCF:如何诊断故障通道?
我正在为我的实验室进行更改,希望能帮助诊断我们看到的一些奇怪的通道故障怪异。有一个测试应用程序使用 DuplexChannelFactory 连接到几个 Windows 服务,由于某种原因,这个测试应用程序上的通道似乎有很多错误。我计划在那里实现一些重试逻辑,但如果能弄清楚它们究竟为什么会出错,那就太好了。
我知道通道工厂和代理对象都实现了很多接口,我已经使用反射器爬过其中的一些,但是我没有找到任何像我要找的东西。有没有办法在这些对象出现故障后查询这些对象,以获取有关导致故障的原因的一些信息?
编辑:配置非常基本——绑定只是默认构造的 NetTcpBinding,服务实现具有[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Reentrant)]
,并且服务合同中的任何操作都没有特殊属性。但是,我更多地询问有关诊断通道故障的一般技术,而不是诊断这种特定情况。我不希望配置细节对此产生太大影响。如果有的话,配置详细信息将是所述诊断返回的内容,对吗?
cookies - 使用 ChannelFactory 通过 WCF 发送 Cookie
我使用一个为我提供 IService 的 IOC 容器。在 IService 是 WCF 服务的情况下,它由通道工厂提供当 IService 位于同一台机器上时,它能够访问相同的 cookie,因此没有问题,但是一旦调用 WCF 服务,就需要发送这些 cookie。
我花了很多时间试图找到一种使用通道工厂发送 cookie 的方法,而我能找到的唯一方法是以下
我使用该方法的问题是我必须知道我正在调用 WCF 服务,但情况并非总是如此。我尝试为 ChannelFactory 编写一个包装器,它在创建新服务和各种其他解决方案时打开一个新的 operationcontextscope,但没有任何效果。
有人有通过 WCF 服务发送 cookie 的经验吗?
我找到了一个涉及使用 SilverLight 的解决方案,不幸的是我没有使用 silverlight,解决方案在这里: http: //greenicicleblog.com/2009/10/27/using-the-silverlight-httpclient-in-wcf-and-still -passing-cookies/ 不幸的是标准 .net 不包含 IHttpCookieContainerManager 接口
理想情况下,我可以使用类似的东西,即我可以告诉 channelfactory 在它打开时传递一个 cookie。
如果有人有更好的方法来传递用于身份验证的令牌,那也将不胜感激。