【问题标题】:Dependency injection failed to inject for second service contract依赖注入未能为第二个服务合同注入
【发布时间】:2012-08-26 13:16:50
【问题描述】:

当我们添加第二个服务合同时,我们遇到了 Spring.Net 依赖注入问题。

设置如下:

一个 WCF 项目和两个服务合同(SVC 文件) 服务 1 和服务 2

这是 Web.config

 <services>
  <service behaviorConfiguration="DefaultBehavior" name="CrestService">
    <endpoint address="https://localhost/Service1.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpEndpointBinding" name="BasicHttpEndpoint" contract="WCF.IService1" />
  </service>
  <service behaviorConfiguration="DefaultBehavior" name="CrestClientService">
    <endpoint address="https://localhost/Service2.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpEndpointBinding" name="BasicHttpEndpoint" contract="WCF.IService2" />
  </service>
</services>

这是 Spring.Config

<object id="Service1" type="WCF.Service1, WCF" singleton="false">
    <property name="ObjectA" ref="ClassA"/>
</object>
<object id="Service2" type="WCF.Service2, WCF" singleton="false">
    <property name="ObjectA" ref="ClassA"/>
</object>

这是 Service1.svc 标记

<%@ ServiceHost Language="C#" Debug="true" Service="Service1" Factory="Spring.ServiceModel.Activation.ServiceHostFactory" %>

这是 Service2.svc 标记

<%@ ServiceHost Language="C#" Debug="true" Service="Service2" Factory="Spring.ServiceModel.Activation.ServiceHostFactory" %>

这就是我们遇到的问题。

通过上面的设置显示,我们可以让 Service1 正常工作,并且也可以正常进行依赖注入。但是对于 Service2,我们得到一个运行时错误:

找不到类型“Service2”,在 ServiceHost 指令中作为 Service 属性值提供,或在配置元素 system.serviceModel/serviceHostingEnvironment/serviceActivations 中提供。

我尝试在 Spring.config、Web.config 和 SVC Mark-up 中将服务名称声明为 WCF.Service1 和 WCF.Service2 的完全限定名称。通过这样做,我能够让两个 Web 服务正常运行,但依赖注入无法将对象注入到 Web 服务中。

我相信这是因为对象 id 不接受 spring 配置中的完整限定名。

有没有人知道这里可能是什么问题?

【问题讨论】:

  • 尝试在service 属性(在.svc 文件中)中更改为WCF.Service2, WCF

标签: .net wcf dependency-injection spring.net


【解决方案1】:

更新到最新版本的 Spring .NET 1.3.2 似乎解决了这个问题。下载的文件可能是错误的参考或问题。

【讨论】:

    猜你喜欢
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多