问题标签 [wcffacility]

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 投票
3 回答
480 浏览

c# - 更改并发模式

我正在使用温莎城堡 WCF 设施。文档说:

如果您从 WCF 激活切换到 Windsor 的 WcfFacility,请确保从服务类型中删除 ServiceBehavior 属性。

那么如何控制并发模式?

在香草 WCF 中,我会这样做:

似乎使用 WCF Facility 的并发模式设置为 Single 并且我找不到更改它的方法。

编辑:客户端异步调用 BeginFoo 方法,并且调用在客户端没有阻塞。我将日志记录放在 BeginFoo 方法的开头和结尾。日志表明服务器调用一次只进入和退出 BeginFoo 方法一次。

以下客户端调用神奇地排队。

0 投票
1 回答
937 浏览

.net - Castle Windsor WCF 和 System.TypeLoadException' 发生在 mscorlib.dll 中

我有一个自托管的 WCF 服务,我使用 Castle Windsor 作为 DI 容器。我得到了这个例外:

Castle 容器的配置如下所示:

我通过以下代码创建 WCF 服务:

它工作正常,但如果我在调试中运行选中“抛出异常时中断”选项调试器总是在线停止

我向我展示了上面列出的异常。

我是否以错误的方式将 Castle 与 WCF 一起使用?我可以避免这个例外吗?

编辑:

该问题仅出现在 Visual Studio 2013 中,在 2012 中很好。

我使用这些版本的城堡:

城堡核心 - 3.3.0

城堡 WcfIntegrationFacility - 3.3.0

温莎城堡 - 3.3.0

0 投票
1 回答
578 浏览

wcf - Castle Windsor WCF Facility 使用自定义 ClientModel 注册所有客户端

我有一组接口,我想在 Windsor 中注册为 WCF 客户端,并让它们都使用 WCF 发现来查找端点。我希望做一些像这样简单的事情:

WcfDiscoveryClientModel 的定义如下:

但是当然,WcfDiscoveryClientModel从来没有执行过任何代码。从设施来源来看,DefaultClientModel除非我将某些内容传递给Resolve(). 我不完全确定我会作为参数传递什么,但我真的很想避免这条路线,因为这些客户端将在网络应用程序中使用。

所以,我的问题是:覆盖默认客户端模型选择的最佳方法是什么?

0 投票
0 回答
387 浏览

c# - C# - Castle WCF Facility - 如何正确设置客户端 OperationBehavior + WcfEndpoint.FromEndpoint 用法

我正在使用 wcf 工具并尝试设置 DataContractResolver 但我找不到任何示例...

最后我让它工作..虽然不确定这是否可以..

问题

  1. (下面的代码)这是完成行为配置的正确方法还是我误解了什么?

  2. 也..我必须禁用异步才能使其工作..这是一个库错误/问题吗?

其他人很高兴在研究之前拥有..

  1. 我真的在考虑 wcf 设施拦截的性能影响.. 与使用它的好处。有什么想法吗?

  2. 为什么这个库不再更新,(http://docs.castleproject.org/Windsor.AllPages.aspx?Cat=Windsor.WCF-Facility)我担心使用不再维护的库?


所以我意识到(调试 wcf 工具)如果 WantsAsyncCapability=true DefaultClientModel 不会复制所有 ServiceEndpoint 行为,只是端点行为(true 是默认配置)所以在这里..

然后在 ReplaceServiceEndpointAsyncContracts 正在重新创建 ServiceEndpoint

上图可以看出,不是契约或操作行为被复制。

就是这样,谢谢。

0 投票
1 回答
1237 浏览

signalr - 温莎城堡抛出“范围缓存已被处置。” 在 SignalR 集线器中

我们正在开发一个基于

  • .NET 4.5.1
  • MVC 5.2.2
  • 欧文
  • WebAPI 2.2
  • SignalR 2.2.0
  • 温莎城堡 3.3.0
  • Wcf 集成工具 3.3.0

为了解决控制器,我们使用下面页面中描述的 ControllerFactory 类:http: //docs.castleproject.org/Windsor.Windsor-tutorial-part-two-plugging-Windsor-in.ashx

为了解决依赖关系,我们使用 WindsorDependencyResolver 类:

请记住,我们不会使用 Windsor 容器解析 SignalR 的 IHub 类,它们是由 OWIN 系统在管道中实例化的。Startup.cs 代码如下所示:

所有控制器、wcf 服务客户端和拦截器(日志记录类除外)都在项目中使用 LifestylePerWebRequest 注册。然而,我们用于记录的类是单例的。

下面的 Web.config 中有一个设置:

因此,当我们尝试在 SignalR 集线器中解析 wcf 客户端(具有每个 Web 请求的生活方式)时,我们会得到以下异常:

在调用 Container.Resolve() 方法之前,我可以在调试器窗口中看到 HttpContext。顺便说一句,我可以解决单例日志记录类。

有趣的一点是我的队友没有任何例外。主要区别在于我们的操作系统版本。我在 windows 8.1 中运行代码,我的队友在 windows 7 中运行它。

我们仅针对信号器集线器获得此例外。我们在其他任何地方都没有例外。我们如何解决这个问题?

0 投票
0 回答
215 浏览

c# - 将 runtimeknown 属性添加到由温莎城堡中的 WcfFacility 创建的 wcf 代理

我正在尝试使用 Castle Windsor 中出色的 wcf 设施创建客户端代理。但是,在使用该工具添加自定义属性时,我需要访问 OperationContextScope。我的方法在运行时失败并出现以下错误:传递给 OperationContext 的 IContextChannel 无效。必须是服务器调度通道或客户端代理通道。当代码进入 using 块时会发生这种情况,如下所示。非常感谢有关如何完成这项工作的任何建议。

容器设置:

调用代理:

0 投票
1 回答
124 浏览

castle-windsor - Windsor WcfFacility:设置 ServiceBehavior 属性

我正在使用 Windsor 的 WCF 设施托管一项服务,但我无法获取UseSynchronisationContextConcurrencyMode设置通常使用ServiceBehaviorAttribute. 我已经看到了两个显然应该起作用的选项(但都尝试了都无济于事):

  1. 注册ServiceBehaviorAttribute为组件IServiceBehavior
  2. 修改WCF 注册中配置回调中的Description集合。BehaviorsOnCreated

我尝试过的第三种方法是 using AddExtensions,但这会导致异常,因为ServiceBehaviorAttributeBehaviors 列表中已经有一个(默认情况下?)。方法 2 也是如此,但在这种情况下,我可以删除它并添加一个新条目,或者修改现有条目。

令人沮丧的是,除了从您的服务中声明“删除 ServiceBehaviorAttribute”的行外,似乎没有任何文档,这显然是因为它可能与 WcfFacility 冲突。

有人可以指出我如何正确地做到这一点吗?任何提示表示赞赏!

0 投票
1 回答
334 浏览

c# - 用于多个端点的 Windsor WCF 客户端

我有一个服务在多个不同的服务器上运行,配置非常相似。我希望能够使用 Castle Windsor WCF Facility 为任意端点地址生成客户端。

现在,我会在编译时知道我所有的服务是什么,所以我可以这样做:

然后像这样做我的ServiceFactory:

但这对我忘记配置特定端点并不可靠。有没有更优雅的解决方案?

0 投票
0 回答
31 浏览

c# - 一个组件的多个扩展

我有以下安装程序:

我如何注册相同的服务但​​使用不同的扩展名,只在某些地方解决?

0 投票
0 回答
55 浏览

c# - 使用 Castle WCF Facility 对 WCF 服务进行异步调用 - 线程主体“继承”问题

我正在使用Castle WCF Facility对 WCF 服务执行异步调用,例如

是否有任何内置方法可以强制Thread.CurrentPrincipal设置为与调用者线程中相同的值?