当我们添加第二个服务合同时,我们遇到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中不接受完全限定名。
有没有人知道这里可能出现什么问题的线索?
答案 0 :(得分:1)
更新到最新版本的Spring .NET 1.3.2似乎解决了这个问题。可能是下载文件的错误引用或问题。