依赖注入无法注入第二个服务合同

时间:2012-08-31 17:37:21

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

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

以下是设置:

一个带有两个服务合同(SVC文件)的WCF项目 Service1和Service2

这是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,我们得到一个运行时错误:

  

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

我尝试在Spring.config,Web.config和SVC Mark-up到WCF.Service1和WCF.Service2中使用完全限定名称声明服务名称。通过这样做,我能够运行两个Web服务而没有错误,但依赖注入无法在Web服务中注入对象。

我相信这是因为对象id在spring config中不接受完全限定名。

有没有人知道这里可能出现什么问题的线索?

1 个答案:

答案 0 :(得分:1)

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