我在Win2008R2终端服务器上创建并部署了WCF客户端(从VSTO Word Addin启动)。 当执行WCF代理的默认构造函数时,会抛出InvalidOperationException
,指出找不到合同的默认端点。WCF VSTO客户端在win2k8上部署时找不到默认端点
在部署到Win7的X64机刚运行正常使用相同的.dll.config
我试图创建内部PowerShell的一个实例,并收到同样的错误相同的WCF客户端。
如果在PowerShell中创建奉献端点我可以EXCUTE服务的方法:
$binding = New-Object System.ServiceModel.BasicHttpBinding
$endpoint = New-Object System.ServiceModel.EndPointAddress("http://myserver:7777/CompanyService.svc")
$client = New-Object MyClient.CompanyServiceReference.CompanyServiceClient($binding, $endpoint)
$v = $client.Version()
服务Web.Config(部分)
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="NoHttpSecurity" sendTimeout="00:03:00">
<security mode="None" />
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name="CompanyService">
<endpoint address="http://myserver:7777/mex" contract="IMetadataExchange" binding="mexHttpBinding" />
<endpoint name="Version" address="http://myserver:7777/Version" contract="MyService.ICompanyService" binding="basicHttpBinding" bindingConfiguration="NoHttpSecurity" />
<endpoint name="CompanyList" address="http://myserver:7777/CompanyList" contract="MyService.ICompanyService" binding="basicHttpBinding" bindingConfiguration="NoHttpSecurity" />
</service>
</services>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
MyClient.dll.config(部分)
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_ICompanyService" closeTimeout="00:01:00">
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None" realm="" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://myserver:7777/CompanyService.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ICompanyService"
contract="CompanyServiceReference.ICompanyService" name="BasicHttpBinding_ICompanyService" />
</client>
</system.serviceModel>
UPDATE
我复制我的Client.config到Office程序文件夹,并将其重命名为WINWORD.EXE.config “固定” 这一点。
可能http://stackoverflow.com/questions/2192970/wcfexception-could-not-find-default-endpoint-element-that-references-contract-i – 2011-05-24 13:27:56
的副本@Roy:因为我可以确认工作配置已经到位,所以不是重复的。 – Filburt 2011-05-24 13:32:44
你有没有解决这个问题?我们有完全相同的问题 - 从excel插件中灌输wcf代理客户端,并且在某些机器win7 64和xp 32上部署但在其他win7 64和xp 32上无法正常工作!看起来好像它没有采用配置,因为即使我把它拧在不工作的机器上,它似乎不在乎 - 就好像它没有那么远。谢谢 – 2011-07-01 12:49:24