我在 VS 2008 中有一个 WPF 应用程序,其中包含一些 Web 服务引用。由于各种原因(最大消息大小、身份验证方法),我需要在 WPF 客户端的 app.config 中为服务绑定手动定义一些设置。
不幸的是,这意味着当我更新项目中的服务引用时,我们最终会变得一团糟——多个绑定和端点。Visual Studio 使用数字后缀(即“Service1”作为“Service”的副本)创建新的绑定和端点,导致配置无效,因为项目中的每个服务引用可能只有一个绑定。
这很容易复制 - 只需在解决方案中创建一个简单的“Hello World”ASP.Net Web 服务和 WPF 应用程序,更改 app.config 绑定中的 maxBufferSize 和 maxReceivedMessageSize,然后更新服务引用。
目前我们正在解决这个问题,只需在更新引用后撤消 app.config 上的结帐,但我不禁认为必须有更好的方法!
此外,我们需要手动更改的设置是:
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Ntlm" />
</security>
和:
<binding maxBufferSize="655360" maxReceivedMessageSize="655360" />
我们使用服务工厂类,因此如果这些设置能够以某种方式以编程方式进行设置,那将起作用,尽管这些属性似乎没有被公开。