2012-08-31 156 views
0

當我們添加第二個服務合約時,Spring.Net依賴注入存在問題。依賴注入未能注入第二服務合約

這裏的設置:

一兩個服務合同(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

WCF項目
<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 markedup

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

下面是我們所遇到的問題。

通過上面的設置顯示,我們可以使Service1正常工作並正確地獲得依賴注入。但是,對於服務2,我們得到一個運行時錯誤:

The type 'Service2', provided as the Service attribute value in the ServiceHost directive, or provided in the configuration element system.serviceModel/serviceHostingEnvironment/serviceActivations could not be found.

我試着在Spring.config,Web.config文件和SVC馬克行動WCF.Service1和WCF.Service2完全合格的名稱聲明服務名稱。通過這樣做,我能夠使兩個Web服務無誤地運行,但依賴注入無法注入Web服務中的對象。

我相信這是因爲對象ID不接受春季配置中的全限定名稱。

有沒有人有任何線索可能是這裏的問題?

+0

嘗試更改爲'服務'屬性(位於.svc文件中)中的'WCF.Service2,WCF' – jgauffin

回答

1

更新到最新版本的Spring .NET 1.3.2似乎解決了這個問題。可能是對下載文件的不良引用或問題。

+0

+1讓我們知道您的問題已解決。 – Marijn