问题标签 [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.

0 投票
1 回答
1495 浏览

c# - 当我调用 WCF 服务时如何触发事件(客户端)

每次调用 WCF 服务时,我都想触发一个事件。

我尝试了以下方法:

上面的问题是只有在打开代理时才调用该事件,但我想在通过该代理进行调用时触发该事件,而不仅仅是在它打开时。我知道 IContextChannel 没有可以做我想做的事情,所以我想有一个解决方法。

0 投票
2 回答
1018 浏览

wcf - WCF - 如何在开始和结束通话之间保持通道/代理

我正在尝试使用 ChannelFactory 调用异步服务。

我不确定的一点是如何最好地保持对通道的引用 - 在调用 BeginSave 和 EndSave 之间(在回调方法中)。

我目前正在通过将其分配给实例变量来执行此操作,但这似乎并不理想。我只希望频道在通话期间存在(我认为这是最佳做法,即打开、使用、关闭)。我还想确保我关闭了正确的频道,在某些情况下可能存在多个频道。

任何关于如何最好地做到这一点的例子都会很棒。

这是我的代码:

非常感谢。

0 投票
1 回答
615 浏览

wcf - WCF - factories and channel objects - how to create for better performance

I just want to make sure I'm following the right approach. In my application for particular service I have one static ChannelFactory (as it's instance thread safe), and every time I need to comunicate with WCF Service I create a channel with CreateChannel , use that channel and then close it. However I bumped into one opinion that storing channel itself in static member, and reusing it is also right (author of that opinion also claims that creation of channels on PerCall basis will decrease performance significantly). What's the best approach?

Thanks,Pawel

0 投票
0 回答
4116 浏览

c# - 关闭与中止 ChannelFactory WCF

许多人面临的 WCF 中的两个常见问题是无法从不同的配置文件加载客户端配置以及关闭与中止问题。

1.)

当开发人员想要部署一些二进制文件以及一个独立的配置文件(也可能在一个资源文件或另一个配置文件中)以避免修改主配置文件时,这是一个常见的场景。

我在这里问问题:

从客户端的不同文件加载 WCF 配置

参考资料: http ://weblogs.asp.net/cibrax/archive/2007/10/19/loading-the-wcf-configuration-from-different-files-on-the-client-side.aspx

http://social.msdn.microsoft.com/forums/en-US/wcf/thread/f33e620a-e332-4fd4-ae21-88c750437355/

2.)我也对关闭与中止感到困惑

参考:

Wcf 服务代理助手http://bloggingabout.net/blogs/erwyn/archive/2006/12/09/WCF-Service-Proxy-Helper.aspx

为什么 ClientBase Dispose 需要抛出故障状态?(或者,关闭和中止有什么区别?)http://social.msdn.microsoft.com/forums/en-US/wcf/thread/b95b91c7-d498-446c-b38f-ef132989c154/

对我来说理想的目标:从客户端的不同文件和帮助类加载配置以管理 Close-Abort。

我需要使用 CustomChannelFactory 并管理 Close-Abort 频道的异常。

我看过很多很多参考资料,这让我很困惑。

对最佳解决方案有什么建议吗?

我使用 VS 2008 和 .NET 3.5。

更多参考:

RotemBloom - 处理 WCF 代理

http://blogs.microsoft.co.il/blogs/rotemb/archive/2008/07/30/WCF-Best-Practices_3A00_-How-to-Dispose-WCF-clients.aspx

WenlongDong - 显式打开 WCF 代理

http://blogs.msdn.com/wenlong/archive/2007/10/26/best-practice-always-open-wcf-client-proxy-explicitly-when-it-is-shared.aspx

WenlongDong - .NET 3.5 中的 WCF 代理创建

http://blogs.msdn.com/wenlong/archive/2007/10/27/performance-improvement-of-wcf-client-proxy-creation-and-best-practices.aspx

Michele LerouxBustamante -WCF 代理包装器

http://www.dasblonde.net/2008/04/24/MyProxyWrapperAndTheEVILSUOFile.aspx

Erwynvan derMeer -WCF 代理助手

http://bloggingabout.net/blogs/erwyn/archive/2006/12/09/WCF-Service-Proxy-Helper.aspx

RotemBloom -WCF 代理功能

http://blogs.microsoft.co.il/blogs/rotemb/archive/2008/07/01/wcf-practices-writing-single-function-for-your-entire-wcf-proxy-calls.aspx

“vipulm” - 来自元数据的动态 WCF 代理 http://wcf.netfx3.com/files/folders/development_tools/entry6148.aspx

0 投票
2 回答
1405 浏览

.net - 替代服务参考

我试图通过解决一些痛点来帮助一个项目团队简化他们的工作。

他们在代码中的痛点之一是,他们通过服务引用(代理)使用 WCF 服务 [即 Visua Studio 2008 中的“添加服务引用”。这会产生很多问题,包括部署开销,Souce Control 获取最新更新代理等相关问题

为了处理这些和其他与服务引用相关的问题,我正在寻找一个很好的替代服务引用的方法。我已经看过ChannelFactory并且我最倾向于那个。这似乎是一个很好的解决方案。

然而问题是,有很多代码像这样使用这些服务

因此,如果我使用 ChannelFactory 路径,我将需要在整个项目中更新所有代码片段,如上述。由于更改量很大,团队对此选项不太满意。

我的问题是,有没有其他更好的替代“添加服务参考”可以用最少的代码更改?或者有什么方法可以在不影响现有代码的情况下使用 ChannelFactory?

0 投票
1 回答
406 浏览

silverlight - 在 WCF 和 Silverlight 之间动态公开服务引用

几天来,我一直在用头撞砖墙,试图解决我在使用 WCF 服务和 Silverlight 时遇到的问题。

我的问题是我有 5 个 Silverlight 项目模块,我动态地读入一个主 Silverlight 应用程序。这些模块中的每一个都有自己的业务层和 DAL,因此它自己调用其 WCF 服务,但是当我将模块加载到并尝试运行 WCF 命令时,我收到一条错误消息,指出我的 ServiceReference 不存在,这是因为服务是模块“ServiceReference.config”的一部分,而不是主项目服务参考。

我是否可以动态地让 Master Silverlight 项目获取 ChannelFactory 的列表,然后创建通道并读取所有元数据并完全摆脱服务引用?您如何避免不得不使用服务引用?

非常感谢您的所有帮助,我认为我会为此而发疯。

谢谢

罗比

0 投票
1 回答
1316 浏览

vb.net - 有谁知道客户端如何使用通道工厂访问 wcf 服务?

我试过这个。。但它不起作用。。

0 投票
2 回答
13716 浏览

c# - 错误消息:由于身份验证失败,无法满足对安全令牌的请求

我正在尝试访问 WCF 服务(MS CRM 2011)并收到上述错误。如果我使用 Cassini 或 IIS Express 从 VS2010 调试器运行我的示例程序,它会很好地工作。没有身份验证错误。

但是,如果我将站点发布到本地 IIS 7.5(运行 Windows 7 64 位),我会在获取 CRM UserId (WhoAmIResponse) 的行上收到错误消息。

我打开 Fiddler 来比较在调试器下运行和在 IIS 下运行之间的请求。在 IIS 下运行的站点上,请求甚至从未遇到过,因此在到达那一步之前它必须失败。

发布到 IIS 的站点将其 web.config 设置为...

该站点在预装的 ASP.NET v4.0 应用程序池、集成管道模式、ApplicationPoolIdentity 帐户下运行。

这是我的代码...

有任何想法吗?非常感激!!!

0 投票
2 回答
543 浏览

wcf - WCF F# - 在客户端上优雅地处理服务关闭

我有一些实验代码基本上只是试图使一个简单的场景工作。我有一个客户端将数据流式传输到多个服务。我遇到的问题是,如果其中一项服务没有正常关闭,我会得到一个似乎无法处理的 EndpointNotFoundException。以下是我处理失败的尝试。实际上,我想从频道列表中删除失败的服务频道,并继续将数据流式传输到仍在运行的服务。计时器只是让服务有机会在数据流开始之前启动。

0 投票
2 回答
4689 浏览

c# - 创建新的 ChannelFactory故障时

当 ChannelFactory<T> 进入故障状态时,以线程安全的方式重新创建 ChannelFactory<T> 的最可靠方法是什么?该场景具有预期的并发性(为了争论,假设有 50 个并发客户端)。我想知道一些推荐的方法/想法/意见来实现这个目标(或替代方案)。

编辑:

使用@Ladislav Mrnka 的答案 - 似乎最可靠的方法是为 ChannelFactory<T> 创建一个包装器。我最终这样做了,并公开了包装器的 CreateChannel 方法。