我正在使用命名管道的WCF服务,它有大约1000个方法(是的,我知道这不是一个好的做法,但它是生命.. )。启动WCF服务需要10秒的时间与一个有1000个方法的大服务合同
我得到的问题是,当启动WCF服务时,它在构造函数ServiceHost
类上花费大约10秒。通过追踪它,我发现时间花在准备服务描述(InitializeDescription
方法ServiceHostBase
类)上。我想这是因为这个服务合约中定义的方法太多了。
任何人都可以帮忙解答我该如何加快这个大服务合同的启动时间?
我知道在一个服务合同中定义如此多的方法并不是一个好习惯。但是我不能改变服务合同(比如把它分成几个小合同)。你知道,这是真实的生活...
谢谢。
如果不能重构可怕的设计是你的生活,那么我强烈建议改变你的生活。 WCF必须找到它需要发布的所有方法和类型来创建元数据(WSDL等),这些元数据和方法的类型和方法越多,其固有的速度越慢。 – CodeCaster
好的ieal :)但改变我的生活并不是我在短期内的计划。回到问题。此WCF服务驻留在桌面应用程序(基于Windows)中,用于与其他进程进行通信。合同中定义的所有方法都是必需的。用户可以随时启动此应用程序,并可以调用1000个中的任何一个操作。所以我们必须在启动时准备好所有的方法。我想知道我是否可以加快准备时间。例如,在开始之前“预先准备”他们?也许在开始之前“预先编译”它和相同的文件? – Alex