问题标签 [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 回答
981 浏览

wcf - 使用 ChannelFactory 对 WCF 进行单元测试

我正在开发一些 WCF 服务,它们将被部署到 Azure,所以我想尝试在本地完成尽可能多的单元测试,以避免在我们运行集成测试时到暂存区域的无用往返。这些服务使用 CQRS 模式,我按照以下方式对所有内容进行了分层: - 将依赖项注入 WCF 服务的引导程序 - 每个服务方法的命令 - 拦截命令的命令处理程序 到目前为止,我可以对命令进行完全单元测试,处理程序和引导程序。我还需要写的是这种类型的测试:

问题是这个测试在配置文件中假装 一个有效的端点。有什么方法可以在我的测试适应性开始时启动 IIS express 之类的东西,然后将通道工厂插入这个 IIS 实例?我根本无法创建一个暂存区域,我可以在其中部署我的服务并运行我的集成测试,所以我宁愿尽可能遵循单元测试方式。

0 投票
3 回答
2361 浏览

wcf - 关于 WCF 频道的困惑

我对代理和频道感到困惑。根据我的阅读,WCF 客户端正在使用通过一系列通道传递消息的代理。每个 Channel 都负责特定的任务,例如一个 Channel 正在对消息进行编码,而另一个 Channel 正在对其进行加密。

当我看到以下代码时,我的困惑开始了

  • 什么时候proxy.MyMethod()被调用,它实际上调用了整个通道链?

  • 作者使用了方法调用CreateChannel并命名了标识符代理。那么在WCF架构中Proxy只是一个空间高层通道,它不是一个独立的架构元素吗?

    /li>
0 投票
2 回答
11635 浏览

c# - 释放由 WCF ChannelFactory 创建的 Channel

我正在寻找一种干净的方式ChannelFactory为我创建通道,并能够在使用后处理它们。
这就是我得到的:

这是一个好的解决方案吗?
有没有更清洁的方法来做到这一点?

0 投票
1 回答
327 浏览

.net - 带有动态参数的 ChannelFactory 错误

这个问题与结合IIS 7.5的动态语言运行时中的Bug有关

ChannelFactory如果我为它提供正确类型的动态对象,则会挂起。

  • 上面的服务是公开的,不是我的,你可以自己测试这段代码,只要在代码中提供的endpoint添加服务引用即可;
  • StockQuoteServiceClient由 Add Service Reference 菜单项创建,并采用动态对象就好了;
  • 当我在调试时使用 F5 启动应用程序时,这神奇地不会发生,所有行都打印并且程序正确退出;
  • 如果我运行它,然后在执行期间附加调试器,我可以看到它挂在调用channel.GetStockQuote(src);
  • 如果我不管它,程序会吃掉我所有的记忆;
  • 仅当我将自己ChannelFactory的对象与动态对象一起使用时,它才会挂起,如评论中所述。

ChannelFactory当添加服务引用创建的对象运行良好时,为什么当它以动态对象作为参数时我的挂起?

0 投票
2 回答
535 浏览

wcf - WCF DuplexChannel - 没有回调的连接

我有一个定义了回调的 WCF 接口。这工作得很好。

现在我有另一个不需要回调的客户端。我想知道是否有一种方法可以在不指定回调对象的情况下连接到服务?

我试过没有 DuplexChannel 工厂,或者 DuplexChannelFactory 和 InstanceContext (null),都没有用!

有没有办法做到这一点?

0 投票
0 回答
1164 浏览

c# - 调用外部服务方法通道工厂客户端

我将如何使用ChannelFactory. 这是我创建的代码ChannelFactory

这是我的ProxyClient课..

最后,这就是我想要做的:

但由于我的SOAP要求,谷歌先生给了我以下链接:

WCF WS-Security 和 WSE Nonce 身份验证 - Rick Strahl 的 Web 日志

所以现在要以某种方式检查它,我必须将此ChannelFactory调用作为服务方法。这是一个外部服务。像这样的东西会很糟糕!

另外,这是我要生成的网络请求..

我也有wsdl..

0 投票
1 回答
993 浏览

wcf - .NET 4.5 中是否支持具有异步方法的 ChannelFactory?

我正在将我们的 WCF 服务转换为使用异步编程。正如预期的那样,界面如下所示:

在客户端,我没有从 Visual Studio 创建服务引用。因为我同时拥有客户端和服务器,所以我只与客户端共享接口,然后我创建(并缓存)一个 ChannelFactory。要异步调用该方法,我使用预期的语法:

我的问题是: ChannelFactory 生成的 IClientChannel 真的使用了下面的异步功能吗?我的意思是,我可以确定没有线程阻塞等待服务器响应吗?

0 投票
1 回答
308 浏览

c# - WSTrustChannelFactory as a singleton. Is it the best practice?

I'm working with an application that uses WSTrustChannelFactory to create trust channels, I noticed that the code is creating a new WSTrustChannelFactory everytime a new channel is needed.

I've never worked with this before but since this is a factory I suppose it can be implemented as a singleton.

Am I right? If so, is there any additional consideration to take (will the factory always be "usable" or there are any scenarios/exceptions where it should be replaced with a new instance)?. Also, is the factory creation an expensive operation, such as a WCF ChannelFactory creation?

0 投票
2 回答
1332 浏览

wcf - 我们可以使用 ChannelFactory当合同(.NET 类、接口)未在客户端和服务使用的某些公共库中定义时?

我正在探索ChannelFactory,在这样做的同时我做了以下事情:

名为“Common”的程序集中的服务合同:

托管在名为“WcfServiceApp”的 Web 应用程序下的服务:

请注意,我创建了另一个服务接口(合同)来创建服务。但合约的名称和命名空间与“Common”程序集中定义的合约相同。

有两个“.svc”文件(TestService.svc 和 TestService2.svc),每个文件都用于上面创建的服务。Web.config有以下内容:

调用这两个服务的客户端:

请注意,客户端正在使用ChannelFactory“Common”库中定义的服务合同。

问题:

我观察到第一个服务(使用一些不同的服务合同创建)接收null参数,而在第二个服务(使用用于创建的服务合同创建)中收到的参数ChannelFactory是预期的“Mike”。

在 Fiddler 中,我可以正确看到该请求参数。

为什么会这样?

如果所有 XML 名称和命名空间都相同(尽管 .NET 接口的名称不同),服务调用是否应该不会成功,因为底层 SOAP 消息会相同

如果我的客户的应用程序想用 Java 创建服务并且我的应用程序应该调用它,我担心会发生什么?

0 投票
1 回答
4331 浏览

wcf - WCF ChannelFactory 异步调用

我正在使用 WCF 和 TPL 异步库我需要的是能够请求多个 WCF 方法并等到所有方法都完成,到目前为止,我发现在 .NET 4.5 中有非常方便的方法Task.Factory.ContinueWhenAll可以用于等到所有通话结束

我发现以下方法以异步方式请求 WCF 调用
选项 1。通过使用“添加引用”对话框生成的代理和选项“生成基于任务的操作”-> [例如这里] [1]-在我的情况下不是一个选项因为我们使用的是原始 ChannelFactory
选项 2。通过将同步调用包装在任务中,例如

选项 3. 通过创建客户端异步版本的合约接口,例如

有了这个我可以异步调用方法,例如

所以问题如下,与选项2相比,选项3有什么优势,在选项2中调用WCF方法是否正确?选项 2 与 3 相比有一个优点,即无需创建客户端合约接口。