问题标签 [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 投票
2 回答
1130 浏览

c# - 如何解决温莎城堡中的代理类

我有一个 WCF 服务,我正在尝试使用 Castle Windsor 来解决它。以前的注册是这样的:

现在我创建了一个存在于进程中的代理。它公开相同的接口 (IBatchDataService) 并将 WCF 服务的引用作为构造函数参数。如何在 Windsor 中进行设置,以便将任何其他类解析为使用代理类,但代理类解析为 WCF 服务。我现在有这个:

这应该解决新的代理类。

0 投票
1 回答
365 浏览

castle-windsor - 禁用代码优化或完整 pdb 时,Castle Windsor WCF 设施在发布模式下不起作用

我开发了一个使用 Castle Windsor WCF 集成设施作为 DDD 架构的项目。有一个容器项目、一个域项目、几个实现项目和一个可执行控制台。依赖树可以如下图所示:

控制台(exe)-> 容器(windsor)-> { 实现 -> 域接口 }

控制台项目调用 Container.Bootstrapper.Initialize() 并且城堡安装程序在此方法中搜索此程序集。在调试模式下,它工作成功,windsor 加载所有依赖项并创建 WCF 服务。当光标进入 Initialize 时,我可以在 Modules 窗口中看到新加载的模块。

依赖安装代码如下图:

问题在于发布模式。我无法为此方法设置断点,安装程序也无法工作,因此模块窗口中没有加载任何内容。在发布模式下,只有在控制台项目的项目选项中未选中代码优化并选中完整pdb调试信息时才有效。这是一个已知问题还是错误?

提前致谢。

0 投票
1 回答
407 浏览

castle-windsor - IWcfPolicy - 动态添加消息头

是否可以动态地将标头信息(或查询字符串)添加到 wcf 请求中?我一直在搞乱这样的 IWcfPolicy:

但是,这不起作用。任何帮助都会非常感激。

0 投票
1 回答
683 浏览

wcf - 在 Castle.Windsor 中使用带有 WCFFacility 的客户端基于任务的操作

我想为 WCF 客户端利用新的基于任务的操作。我目前正在使用 WCFFacility 如下:

其中 IAdminService 是 ServiceContract 类。所有关于基于任务的操作的 MSDN 文章都指在导入服务引用时设置“基于任务的操作”复选框。但是在我目前使用的样式中,并没有导入服务引用,因为我简单直接引用了服务契约接口。

所以我想知道如何在对当前代码进行最少更改的情况下启用对基于任务的操作的支持。

[顺便说一句 - WCFHelpers 是一个实用程序类,它生成一个 BindEndpointModel 并且在执行此代码之前将 addr 设置为适当的端点地址]

0 投票
1 回答
512 浏览

wcf - 代码中的城堡 wcf 设施集 serviceBehavior 配置名称

我有几个要动态注册的服务,而不是在 app.config 中为每个服务注册一个条目,类似于以下示例。

我知道如何动态创建端点,但我不知道如何在 DefaultServiceModel 上定义行为配置。

有没有办法从 app.config 重用我的服务行为?

0 投票
0 回答
85 浏览

castle-windsor - 城堡温莎 wcf 服务和 DependencyResolverException

我使用 AsWcfService() 来托管我的 WCF 服务。当我因为一个组件配置错误而收到 DependencyResolverException 时,容器会以某种方式吞下 DependencyResolverException。它甚至不会出现在输出窗口中。我的 Windows 服务启动,但在客户端收到 EndpointNotFoundException 之前,我无法识别该服务未运行。

如何在我的 Windows 服务启动时检测到这个问题?我想尽快失败。

如何延迟和控制服务的启动?我想按需启动某些服务,但仍想在我的安装程序中注册它们。默认情况下,容器会自动启动所有注册的服务。

谢谢!

0 投票
1 回答
68 浏览

compression - 温莎城堡 WCFF 设施压缩

在我们当前的项目中,我们使用 Castle Windsor 在 .NET 4 应用程序上配置 WCF。随着我们来回移动的数据可能会增长,我们希望进行某种压缩(尤其是从客户端到服务器)。在google上搜索这个带来了两个解决方案:使用.net 45的内置压缩支持(由于我们正式需要支持Windows XP,现在我们无法迁移到.net 45)或使用微软提供的示例编码器(http://msdn.microsoft.com/en-us/library/ms751458.aspx)。由于自定义编码器选项看起来并不那么糟糕,我想尝试一下,直到我们可以迁移到 .net 45。我唯一真正不知道的是是否可以使用 Castle Windsor 来配置这个场景.

对此有什么想法吗?

谢谢马库斯

0 投票
1 回答
476 浏览

wcf - Castle WcfFacility 发布 MEX 端点

我正在编写一个简单的 WCF 服务并将其托管在控制台应用程序中。

我知道服务正在运行,因为一个简单的客户端可以执行服务上公开的操作。

如果我将 Wcf 测试客户端指向我的服务,我会收到以下错误(注意 tempuri.com 实际上是 localhost,但 stackoverflow 要求我将此输出包装为代码块或包含 FQDN):

System.InvalidOperationException:元数据包含无法解析的引用:“ http://tempuri.com:27198/UsingWindsor.svc?wsdl ”。----> System.ServiceModel.ProtocolException : 内容类型 application/soap+xml; 服务http://tempuri.com:27198/UsingWindsor.svc?wsdl不支持 charset=utf-8 。客户端和服务绑定可能不匹配。----> System.Net.WebException:远程服务器返回错误:(415)无法处理消息,因为内容类型'application/soap+xml; charset=utf-8' 不是预期的类型 'text/xml; 字符集=utf-8'..

不完全理解错误,我开始使用作为 WcfFacility 一部分的测试。

我在 Castle.Facilities.WcfIntegration.Tests.ServiceHostFixture 中修改了一个测试,以显示我遇到的相同错误(当然它无需修改即可工作):

为什么当我消除 NetTcp 绑定并绑定到 Http 时,此测试会失败?我在控制台应用程序中的配置与修改后的测试非常相似。(包括完整性)

0 投票
1 回答
504 浏览

wcf - Castle.Windsor 拦截 WCF 操作返回类型

鉴于此操作合同:

我使用 Castle.Windsor WCFClientFacility 创建了一个 WCF 客户端,如下所示:

这一切都很好,但现在我希望能够代理 GetData 操作的返回类型,CompositeType. 只需CompositeType像这样在容器中注册:

没有做到这一点......这种行为可能吗?这样做的目的是使用代理/拦截器在返回的对象上自动实现 INPC。关键是在序列化程序激活一个新实例时拦截它的可能性CompositeType

0 投票
1 回答
203 浏览

castle-windsor - WcfFacility:控制服务生活方式

注册示例:

.svc:

WCF 托管在 IIS 中,当我使用 WcfStorm 访问端点时,不会在每个请求时调用 ctor。如果我重新生成客户端代理,则再次调用 ctor。服务生命周期如何与客户端代理耦合?