.net 部署在win2k8上时,WCF VSTO客户端找不到默认端点
我在Win2008R2终端服务器上创建并部署了一个WCF客户端(从VSTO Word加载项启动)。 当执行WCF代理的默认构造函数时,会抛出一个.net 部署在win2k8上时,WCF VSTO客户端找不到默认端点,.net,wcf,vsto,windows-server-2008,.net,Wcf,Vsto,Windows Server 2008,我在Win2008R2终端服务器上创建并部署了一个WCF客户端(从VSTO Word加载项启动)。 当执行WCF代理的默认构造函数时,会抛出一个InvalidOperationException,说明找不到契约的默认端点 部署到Win7 x64计算机上的同一个WCF客户端使用相同的.dll.config即可正常运行 我试图在PowerShell中创建一个实例,但收到了相同的错误 如果在PowerShell中创建专用端点,我可以执行服务方法: $binding = New-Object Syste
InvalidOperationException
,说明找不到契约的默认端点
部署到Win7 x64计算机上的同一个WCF客户端使用相同的.dll.config即可正常运行
我试图在PowerShell中创建一个实例,但收到了相同的错误
如果在PowerShell中创建专用端点,我可以执行服务方法:
$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(部分)
MyClient.dll.config(部分)
更新
我通过将Client.config复制到Office程序文件夹并将其重命名为WINWORD.EXE.config来“修复”此问题。您能以编程方式创建端点吗
MyProxy proxy = new MyProxy (new BasicHttpBinding(), new EndpointAddress("http://server/Service.svc"));
如果这样做有效,那么很可能是配置问题。我们在通过Visual Studio 2010.NET4创建的Excel 2010加载项中遇到了完全相同的问题。我们按照本文中更新的修复程序修复了问题,但希望详细说明修复程序的细节,请参见下文 更新 我通过将Client.config复制到Office程序文件夹并将其重命名为WINWORD.EXE.config“修复”了此问题 我们修复的详细信息如下:
我希望这些信息能帮助所有遇到同样问题的人,并澄清任何缺失的细节:)此问题是由于部署项目在注册表中没有清单文件的正确条目造成的。上述解决方法之所以有效,是因为-尚未找到外接程序word/excel等的配置文件。请查找默认位置(其程序目录)并查找默认配置文件名-对于MsWord WINWORD.EXE.config 清单条目的不正确表单为:
[TARGETDIR]Addin.vsto|vstolocal
应该是:
file:///[TARGETDIR]Addin.vsto|vstolocal
然后将正确加载配置文件
有关更多信息,请参见可能是@Roy的副本:不是真正的副本,因为我可以确认工作配置已就位。您解决过这个问题吗?我们有完全相同的问题-从excel加载项中插入wcf代理客户端,并且在某些机器win7 64和xp 32上部署时效果良好,但在其他win7 64和xp 32上部署时效果不佳!似乎它没有拾取配置,即使我在不工作的机器上使用它,它似乎也不在乎——好像它没有走那么远。谢谢,我们通过将WCFClient.config复制到Office程序文件夹并将其重命名为WINWORD.EXE.config将其“修复”。为所有用户部署外接程序真的很麻烦。好吧,我尝试在PowerShell中创建一个端点,并且可以调用服务方法。我将添加我的服务和客户端配置。我承认实际的问题是配置显然不可读/不可访问,并研究如何配置VSTO加载项。这看起来很有趣-我必须将此转发给我的继任者,因为我今年3月确实离职了。我认为这是正确的解决方案。为了正确读取配置,我们需要使用file:///前缀和| vstolocal后缀。谢谢
[TARGETDIR]Addin.vsto|vstolocal
file:///[TARGETDIR]Addin.vsto|vstolocal