2011-01-28 51 views
0

我自己託管了來自控制檯應用程序(HOST)的WCF服務。我從另一個控制檯應用程序(PARENT)調用HOST。當我運行PARENT時,一切正常,WCF成功託管並且服務引用實例也正在創建。 PARENT應用程序實際上是另一個大型非託管應用程序(BIG A)的插件。當我從BIG A啓動PARENT應用程序時,控制檯應用程序自行成功託管服務。但是,我在創建服務實例時遇到以下錯誤。無法找到引用合同的默認端點元素

在ServiceModel客戶端配置部分找不到引用契約'CalculatorServiceReference.ICalculatorService'的默認端點元素。這可能是因爲沒有找到適用於您的應用程序的配置文件,或者因爲在客戶端元素中找不到匹配此合同的端點元素。

配置文件如下。

•HOST

<?xml version="1.0" encoding="utf-8" ?>  
<configuration>  
<system.serviceModel>  
<behaviors>  
<serviceBehaviors>  
<behavior name="NewBehavior">  
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="false" />  
</behavior>  
</serviceBehaviors>  
</behaviors>  
<services>  
<service behaviorConfiguration="NewBehavior" name="HybridCalcService.CalculatorService">  
<clear />  
<endpoint address="mex" binding="mexHttpBinding" name="Mex" contract="IMetadataExchange" 
listenUriMode="Explicit">  
</endpoint>  
<endpoint address="net.tcp://localhost:8523/CalcService" binding="netTcpBinding"  
name="Tcp" contract="HybridCalcService.ICalculatorService" listenUriMode="Explicit"> 

</endpoint> 

<endpoint address="HTTP" binding="basicHttpBinding" bindingConfiguration=""  
name="HTTP" contract="HybridCalcService.ICalculatorService" />  
<host> 

<baseAddresses>  
<add baseAddress="http://localhost:8080/Hybridservice" />  
</baseAddresses>  
</host>  
</service>  
</services>  
</system.serviceModel>  
</configuration> 

•和家長的配置的配置文件是

<?xml version="1.0" encoding="utf-8" ?>  
<configuration>  
<system.serviceModel>  
<behaviors>  
<serviceBehaviors>  
<behavior name="NewBehavior">  
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="false" />  
</behavior>  
</serviceBehaviors>  
</behaviors>  
<services> 

<service behaviorConfiguration="NewBehavior" name="HybridCalcService.CalculatorService">  
<clear />  
<endpoint address="mex" binding="mexHttpBinding" name="Mex" contract="IMetadataExchange" 
listenUriMode="Explicit">  
</endpoint>  
<endpoint address="net.tcp://localhost:8523/CalcService" binding="netTcpBinding"  
name="Tcp" contract="HybridCalcService.ICalculatorService" listenUriMode="Explicit">  
</endpoint>  
<endpoint address="HTTP" binding="basicHttpBinding" bindingConfiguration=""  
name="HTTP" contract="HybridCalcService.ICalculatorService" />  
<host>  
<baseAddresses>  
<add baseAddress="http://localhost:8080/Hybridservice" /> 
</baseAddresses>  
</host>  
</service>  
</services>  
</system.serviceModel>  
</configuration> 

誰能幫助我在這個問題?

+1

如何從您的BIG A應用程序執行PARENT?它是否從正確的位置執行? AppDomain.CurrentDomain.BaseDirectory是你有配置文件的目錄嗎? – Nekresh 2011-01-28 14:33:14

+0

@ Nekresh:是的,它從正確的位置執行。所有程序集和配置文件都在同一個目錄中。 – Ram 2011-01-28 14:41:08

回答

0

我相信配置信息必須位於主應用程序的配置文件中。將該信息添加到BigA的配置中應該可以解決問題。

This看起來很像我爲自定義頻道所做的。如果我沒有記錯,這將進入HOST,然後在其他配置中不需要任何東西。

相關問題