未为从VSTO Word AddIn调用的WCF服务获取动态交换的配置信息

本文关键字:获取 服务 动态 交换 信息 配置 WCF VSTO Word AddIn 调用 | 更新日期: 2023-09-27 18:25:38

我有一个C#VSTO Word AddIn,从中我成功地进行了WCF服务调用。我现在正试图从AddIn中动态替换配置文件(AddIn的基本目录中的MyAddin.dll.config),以便重定向到其他端点。一旦我更改了文件,我将使用以下代码刷新:

System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
ConfigurationManager.RefreshSection("appSettings");
ConfigurationManager.RefreshSection("system.serviceModel/behaviors");
ConfigurationManager.RefreshSection("system.serviceModel/bindings");
ConfigurationManager.RefreshSection("system.serviceModel/client");
ConfigurationManager.RefreshSection("system.serviceModel/services");

当我这样做的时候,我没有打开任何WCF客户端。在这次刷新之后,当我立即创建一个新的客户端时

var adminProxy = new CorrespondenceAdminClient();
mcRibbon.serviceHostUri = adminProxy.Endpoint.Address.Uri.ToString();

它似乎已经获取了新信息,但当我调用服务方法时,有时调用指向正确的端点,有时不是。当我随后创建一个客户端并从AddIn代码的另一部分调用服务时,它可能会也可能不会到达预期的端点。有时,立即调用有效,但后续调用无效。

这些信息缓存在什么地方了吗?我可以清除它吗?

我已经尝试过在Visual Studio(Premium 2012)调试器内外运行此程序,但这并没有什么区别。

未为从VSTO Word AddIn调用的WCF服务获取动态交换的配置信息

它确实被缓存,您可以尝试在注册表中添加"|vstolocal"https://msdn.microsoft.com/en-us/library/bb386106.aspx