3

多年来一直使用 WCF 测试客户端,测试我使用的外部托管 Web 服务。

我经常诅咒无法使用有关绑定的设置来保存标准配置,因为对于某些方法,我需要将 maxRecievedMessageSize 增加到标准 65536 之上 - 以及偶尔的其他设置。

我通常每次都必须使用 scvConfigEditor 进行更新。但我接受了这一点。

不幸的是 - 更新到 Windows 10 并重新安装所有内容后,我无法再编辑配置文件。或者我可以编辑,但服务不会像以前那样使用新设置重新加载。我也尝试过手动编辑文件,并且在使用编辑器和手动保存后尝试刷新服务..

有人知道原因或解决方法吗?

4

4 回答 4

2

我遇到了同样的问题,并将我的新安装与旧的工作安装进行了比较。

首先,您必须取消选择Always regenerate config when launching servicesTools->Option退出 WCF 测试客户端。

我发现新安装的AddressToConfigMapping.xml文件C:\Users\<user>\Documents\Test Client Projects\15.0\CachedConfig夹中缺少我必须创建的文件。

AddressToConfigMapping.xml 文件的内容应该是:

<Mapping>
  <Entry>
    <Address>http://localhost/TestService.svc</Address>
    <ConfigPath>C:\Users\<user>\Documents\Test Client Projects\15.0\CachedConfig\Client.dll.config</ConfigPath>
  </Entry>
</Mapping>

然后,您可以在 scvConfigEditor 中编辑配置文件并将文件保存到C:\Users\<user>\Documents\Test Client Projects\15.0\CachedConfig\Client.dll.config并用您正在测试的服务替换地址元素的内容。

现在,当您在 WCF 测试客户端中添加服务时,应加载保存的配置。

如果您必须测试多个服务,可以在AddressToConfigMapping.xml文件中为具有不同配置的不同服务添加其他条目。

于 2018-06-18T12:48:52.420 回答
0

我为这个问题找到了另一种解决方案。您可以在没有 svcConfigEditor 的情况下使用恢复到默认配置选项来编辑配置文件。

脚步:

  1. 运行 WCF 测试客户端并添加服务。
  2. 右键单击配置文件并选择复制完整路径。
  3. 使用 Client.dll.config 打开文件夹。
  4. 编辑 default.config。
  5. 返回到 WCF 测试客户端。
  6. 右键单击配置文件并选择恢复到默认配置。

这将用 default.config 替换 Client.dll.config 并重新应用设置。

于 2021-05-28T14:22:01.347 回答
0

克里姆森的回答是正确的。在 Windows 10 和 VisualStudio 2018 社区中,不会创建目录和映射文件。您可以通过自己创建它们来解决它。

我想强调的另一点是需要为地址字段提供的值必须是服务的元数据端点,而不仅仅是服务的端点。您通常可以在 App.config 中找到元数据端点

 <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:80/MyTravelAgency/" />
      </baseAddresses>
    </host>

在我的服务中,AddressToConfigMapping.xml 文件看起来像

 <Mapping>
   <Entry>
     <Address>http://localhost/MyTravelAgency/mex</Address>
     <ConfigPath>C:\Users\Roger\Documents\Test Client Projects\15.0\CachedConfig\Client.dll.config</ConfigPath>
   </Entry>
  </Mapping>
于 2019-02-10T05:09:42.767 回答
0

问题似乎是 svcConfigEditor 的保存行为。通常会引发文件更改事件,但来自 svcConfigEditor 的更改会引发重命名事件,wcf 测试客户端不处理该事件。使其工作的一种方法是对 wcf 测试客户端进行逆向工程并扩展 FileSystemWatcher 以获取重命名的事件。另一种方法是打开您喜欢的文本编辑器并在编辑后使用新的空行保存配置文件。在这种情况下,将触发 changed 事件并出现重新加载屏幕。

配置文件可以在%localappdata%\Temp\Test Client Projects\

要获取重命名的事件,您需要处理并使用以下设置fileSystemWatcher.Renamed进行扩展:fileSystemWatcher.NotifyFilter

NotifyFilters.Attributes | NotifyFilters.CreationTime | NotifyFilters.FileName | NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.Size | NotifyFilters.Security

如果发生则调用的相关代码fileSystemWatcher.Renamed是:

string fullPath = eventArgs.FullPath;
ServiceProject serviceProject = this.workspace.FindServiceProject(fullPath);
if (serviceProject != null)
{
    this.TryRefreshConfig(serviceProject);
}
于 2019-04-04T08:09:12.837 回答