Castle.Windsor和WcfFacility还在找我的路,但是这个让我抓狂。我希望温莎将WCF客户机注入到它在我的存储库中看到该依赖项的位置。
我在Visual中添加了一个服务引用,并将以下内容添加到我的引导代码中:
container.AddFacility<WcfFacility>();
container.Register(
Component.For<IServiceContract>()
.AsWcfClient(
DefaultClientModel.On(
WcfEndpoint.FromConfiguration("MyEndpoint")
)
)
);我的web.config包含一个<client>节,其中有一个相应命名的端点:
<client>
<endpoint address="http://localhost:63988/MyService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IServiceContract"
contract="IServiceContract"
name="MyEndpoint" />
</client>当我运行我的应用程序时,我会得到一个YSOD:
无法在“IServiceContract客户端配置”部分找到具有名称“service”和契约“ServiceModel”的端点元素。这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此名称匹配的端点元素。
非常清楚,但是为什么它要寻找一个名为"service“的元素,我的元素名为"MyEndpoint”,我已经正确地传递给了FromConfiguration方法。
如果我将web.config更新为将名称属性从"MyEndpoint“更改为”服务“,那么YSOD就会消失,我的页面就能工作了!
<client>
<!-- Changing the name attribute to "service" works? -->
<endpoint address="http://localhost:63988/MyService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IServiceContract"
contract="IServiceContract"
name="service" />
</client>似乎这个工具忽略了我给它的端点名称?
或者(更可能),我没有正确注册我的服务,而且该工具正在使用一些命名备份。
编辑
看来我的端点名属性有是“服务”!在我尝试过的每个测试中,如果属性是任何其他值,我总是得到相同的错误--这是一个错误吗?
干杯
发布于 2013-03-08 08:22:18
好吧-我已经克服了这个问题。
我为一个MVC和一个WCF编写了一个简单的测试工具,并且使用WcfFacility时没有任何问题--这让我有信心它确实能工作;o)。
我使用现有的代码库和重构来使用WcfFacility,所以我绑定了最初的更改,然后重新启动。这一次,我没有任何问题。
我想我一定是错过了web.config中<system.serviceModel>元素中的一些复制--尽管我发誓它是好的!
干杯
https://stackoverflow.com/questions/15138565
复制相似问题