WCF服务启动需要10秒钟,一个大型服务合同有1000个方法
我正在使用一个命名管道WCF服务,它有大约1000个方法(是的,我知道这不是一个好的实践,但它的生命…) 我遇到的问题是,当启动WCF服务时,在WCF服务启动需要10秒钟,一个大型服务合同有1000个方法,wcf,service,contract,Wcf,Service,Contract,我正在使用一个命名管道WCF服务,它有大约1000个方法(是的,我知道这不是一个好的实践,但它的生命…) 我遇到的问题是,当启动WCF服务时,在ServiceHost类的构造函数上花费大约10秒。通过跟踪,我发现时间花在了准备服务描述上(InitializeDescriptionmethodofServiceHostBaseclass)。我猜这是因为在这个服务合同中定义了太多的方法 任何人都可以帮助回答如何加快这一大型服务合同的启动时间? 我知道在一个服务合同中定义这么多方法不是一个好做法。但我
ServiceHost
类的构造函数上花费大约10秒。通过跟踪,我发现时间花在了准备服务描述上(InitializeDescription
methodofServiceHostBase
class)。我猜这是因为在这个服务合同中定义了太多的方法
任何人都可以帮助回答如何加快这一大型服务合同的启动时间?
我知道在一个服务合同中定义这么多方法不是一个好做法。但我不能更改服务合同(例如将其划分为几个较小的合同)。你知道,这是真实的生活
谢谢。重构此端点虽然不是一件小事,但如果您正确管理流程,可能会非常容易:
抱歉,这并没有直接解决最初的问题,并感谢您在目前的开发范围之外重新进行此规模的工作 重构此端点虽然不是一件小事,但如果您正确管理流程,重构此端点可能相当容易:
抱歉,这并没有直接解决最初的问题,并感谢您在目前的开发范围之外重新进行此规模的工作 如果不能重构糟糕的设计是你的生活,那么我强烈建议改变你的生活。WCF必须找到它需要发布的所有方法和类型来创建元数据(WSDL等),拥有的类型和方法越多,元数据的速度就越慢。好的ieal:)但改变我的生活不是我短期内的计划。回到问题上来。此WCF服务驻留在一个桌面应用程序(基于Windows)的自主机中,用于与另一个进程通信。合同中定义的所有方法都是必要的。用户可以随时启动此应用程序,并可以调用1000个操作中的任意一个操作。因此,我们必须在启动时准备所有方法。我想知道我是否可以加快时间来准备它们。例如,在开始之前“预先准备”它们?也许在开始之前对它进行“预编译”并将其复制到某个文件中?如果不能重构糟糕的设计是你的生活,那么我强烈建议你改变你的生活。WCF必须找到它需要发布的所有方法和类型来创建元数据(WSDL等),拥有的类型和方法越多,元数据的速度就越慢。好的ieal:)但改变我的生活不是我短期内的计划。回到问题上来。此WCF服务驻留在一个桌面应用程序(基于Windows)的自主机中,用于与另一个进程通信。合同中定义的所有方法都是必要的。用户可以随时启动此应用程序,并可以调用1000个操作中的任意一个操作。因此,我们必须在启动时准备所有方法。我想知道我是否可以加快时间来准备它们。例如,在开始之前“预先准备”它们?也许“预编译”它,并在开始之前将其复制到某个文件中?非常感谢您所有的好建议。最后,我决定重构它,我做到了!我设法将大型合同拆分为几个较小的合同,并将它们托管在几个WCF主机中。现在,用于初始化WCF主机的时间减少到1.5秒以下。所以,记住在放弃之前要尽你最大的努力~~~很好的一个-享受你的新服务!非常感谢你所有的好建议。最后,我决定重构它,我做到了!我设法将大型合同拆分为几个较小的合同,并将它们托管在几个WCF主机中。现在,用于初始化WCF主机的时间减少到1.5秒以下。所以,记住在放弃之前要尽你最大的努力~~~很好的一个-享受你的新服务!