每当我的WCF服务空闲一段时间(大约15分钟或更长时间)时,都会花一些时间来初始化新请求。通常,响应时间为2-3秒,首次请求大约为30秒。实际上,它与此处说明的帖子类似。为什么第一个WCF客户端呼叫变慢?
但是通道工厂的解决方案似乎在客户端,并且仅适用于自动生成代理的情况。我正在服务器端寻找解决方案,因为我的客户端未使用任何代理类或wsdl类。它只是将请求构建为字符串并发出http post请求。无论如何,如果我要提供B2B Web服务,很难说我的客户要在他们的客户端上进行变通。我正在使用https。可能也是问题吗?
编辑:我已经检查了已在服务器上设置为0的IIS空闲时间。
EDIT2:当我检查travelog时,没有看到任何详细信息。以下是我在web.config中的跟踪代码的外观和截图。也许我需要扩展发呆信息,但是如何?
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Information, ActivityTracing" propagateActivity="true">
<listeners>
<add name="traceListener" type="System.Diagnostics.XmlWriterTraceListener" initializeData="c:\log\Traces.svclog"/>
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="xml" initializeData="c:\log\MessageLog.log"/></listeners>
</source>
</sources>
感谢您的建议。
我怀疑这与闲置一段时间后的回收和终止过程有关。IIS上的每个应用程序都在某个AppPool下运行。我已经检查了我在DefaultAppPool(win 8.1)上的设置,这些设置在下面。
我知道您写的是在服务器上将IIS空闲时间设置为0。但是,您是否检查了正确的应用程序池?我在第一个屏幕截图中显示的就是这个值吗?
我还要检查一段时间后服务器上是否不存在某些w3p进程(负责您的WCF应用程序并在您设置的AppPool身份下运行)。另外,我将尝试自行托管WCF服务,以检查IIS或其他地方是否有问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句