【问题标题】:WCF Client/Server config mismatchesWCF 客户端/服务器配置不匹配
【发布时间】:2012-07-17 17:38:24
【问题描述】:

我编写了一个将文件上传到服务器的 WCF 服务。它被配置为流式传输文件,因为它们可能相当大。我在 web.config 中设置了 transferMode = Streamed 并将各种配置大小设置设置为相当大的大小。

这对我的测试客户来说很好。我必须手动设置客户端配置以使 transferMode= Streamed - 默认情况下,当我包含服务引用时,它已将其设置为 Buffered。

但是使用我服务的人抱怨必须执行该手动步骤。他一直告诉我我的服务有问题,我需要解决它。对于未传播到客户端的设置,我看不到任何我可以“做”的事情。如果他使用我发送给他的配置设置,它工作正常。

有什么我应该做的吗?如果没有,是否有某种证据我可以提供给这个人来说服他我的服务没有中断?谁有文章的链接来解释这个?

【问题讨论】:

  • 他是如何生成 wsdl/client 的? (即他是在使用服务引用还是你给他一个 dll?)
  • 我在 IIS 服务器上发布了 WCF,他使用了服务引用。此外,当我在测试客户端中包含服务引用然后更新引用时,客户端配置不会被覆盖,因此这些手动设置只需要设置一次。但他声称,当他更新服务引用时,它会覆盖他的配置设置。
  • 他不能使用 svcutil 生成引用有什么原因吗?我发现使用 svcutil 比服务参考稳定得多。我的意思是,这是 wcf,这家伙是怎么想的,他不需要做任何事情?

标签: c# .net wcf web-config streaming


【解决方案1】:

如果使用您服务的人的平台是 .Net,那么您可以创建具有正确配置的客户端库,该客户端库使用您的服务并让他使用它。

有知名文章WCF the Manual Way… the Right Way

【讨论】:

  • 我阅读了这篇文章,发现它很有趣,尽管看起来实现它对我来说可能是一个挑战。基本上,我需要执行更多的工作。我认为我不应该仅仅因为这个人不能更新他自己的应用程序配置而重新编写一个工作服务。感谢您的链接。我可能会在以后的服务中尝试这个。
  • 是的,它需要更多的时间来实现,但它确实是更好的方法。
  • 当我从头开始构建下一个服务时,我会尝试这种方式。由于我似乎已经说服了其他开发人员他必须手动设置配置,所以这次我将节省自己的重写时间。不过感谢您的回复。我很感激。