1

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

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

任何人都可以帮助回答我怎样才能加快这个大服务合同的启动时间?

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

谢谢。

4

1 回答 1

1

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

  1. 选择您的端点当前支持的单个逻辑业务案例。
  2. 创建完成这个单一逻辑业务操作所需的所有操作的列表。
  3. 为这些操作创建一个新端点,保持相同的操作签名。
  4. 将任何想要完成此业务案例的现有消费者重新指向新端点。
  5. 重复过程,直到您涵盖所有业务案例。

很抱歉,这并没有直接解决原始问题,并且欣赏这种规模的重新工作可能超出了您当前开发的范围。

于 2012-06-15T12:32:14.587 回答