我有我想要配置通過應用程序配置文件服務發現小WCF客戶端 - 不過每當我這樣做:ServiceModel.Discovery.DiscoveryClient(字符串endpointConfigurationName)拋出ArgumentNullException
// Create a new DiscoveryClient instance from the 'DiscoveryEndpoint'
// configuration in App.config
DiscoveryClient discoveryClient = new DiscoveryClient("DiscoveryEndpoint");
我得到一個ArgumentNullException
,Value cannot be null. Parameter name: contract
。對DiscoveryClient
構造函數的這種過載沒有contract
參數,並且在App.config中正確指定了合約(請參見下文)。
下面是App.config中的有關章節:
<system.serviceModel>
<client>
<endpoint name="DiscoveryEndpoint"
contract="IExampleContract"
kind="dynamicEndpoint"
endpointConfiguration="DynamicEndpointConfiguration"/>
</client>
<standardEndpoints>
<dynamicEndpoint>
<standardEndpoint name="DynamicEndpointConfiguration">
<discoveryClientSettings>
<endpoint kind="udpDiscoveryEndpoint"/>
<findCriteria duration="00:00:02">
<types>
<add name="IExampleContract"/>
</types>
<scopes>
<add scope="urn://wcf.test.com/examples/exampleContract/development"/>
</scopes>
</findCriteria>
</discoveryClientSettings>
</standardEndpoint>
</dynamicEndpoint>
</standardEndpoints>
</system.serviceModel>
這在.NET框架4.0的針對性,使用Visual Studio 2010 SP1。
DiscoveryClient(string)構造函數的這種過載文檔表明這應該創建一個具有在App.config中標識的配置的新DiscoveryClient
實例。
是否有其他人遇到過這種行爲,如果是的話,你是如何解決它的?