使用1000个方法的大型服务合同,WCF服务启动需要10秒

时间:2012-06-15 10:05:36

标签: wcf service contract

我正在使用一个命名管道WCF服务,它有大约1000种方法(是的,我知道这不是一个好习惯,但它的生命......)。

我遇到的问题是,在启动WCF服务时,ServiceHost类的构造函数大约需要10秒。通过跟踪,我发现时间花在准备服务描述(InitializeDescription类的ServiceHostBase方法)上。我想这是因为此服务合同中定义的方法太多了。

任何人都可以帮忙解答如何加快这项大型服务合同的启动时间?

我知道在一个服务合同中定义这么多方法并不是一个好习惯。但我无法改变服务合同(例如将其分成几个较小的服务合同)。你知道,这是现实生活......

感谢。

1 个答案:

答案 0 :(得分:1)

如果您正确管理流程,重构此端点虽然不重要,但可能相当容易:

  1. 选择您的端点当前支持的单个逻辑业务案例。
  2. 创建实现此单一逻辑业务操作所需的所有操作的列表。
  3. 仅为这些操作创建新端点,保留相同的操作签名。
  4. 将想要实现此业务案例的任何现有消费者重新指向新端点。
  5. 重复流程,直到涵盖所有业务案例为止。
  6. 道歉这不能直接解决原始问题,并且希望在这种规模上重新工作可能超出了您当前开发的范围。