每次我的WCF服务闲置一段时间(大约15分钟或更长时间),初始化新请求需要一些时间。通常响应时间为2-3秒,第一个请求大约为30秒。实际上它类似于这里解释的帖子。 Why is the first WCF client call slow?
但是在渠道工厂的解决方案似乎在客户端,它仅适用于生成自动代理的情况。我在服务器端寻找解决方案,因为我的客户端没有使用任何代理类或wsdl类。它只是将请求构建为字符串并发出http post请求。 无论如何如果我提供B2B网络服务,说我的客户在他们的客户端做一个解决方法并不容易。 我正在使用https。可能也是问题?
编辑:我已经检查了服务器上已经设置为0的IIS空闲时间。
EDIT2:当我检查我的旅行时,我没有看到任何详细信息。下面是我在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>
感谢您的建议。
答案 0 :(得分:2)
我怀疑它与空闲时间之后的回收和终止过程有关。 IIS上的每个应用程序都在某些AppPool下运行。我已在DefaultAppPool(win 8.1)上检查了我的设置,这些设置在下面。
我知道你写的是你在服务器上将IIS空闲时间设置为0。但你有没有选中正确的App Pool?这是我在第一个屏幕截图中显示的这个值吗?
我还会检查一段时间后服务器上是否存在某些w3p进程(负责您的WCF应用程序并在您设置的AppPool标识下运行)。此外,我会尝试自我托管WCF服务,以检查它是否是IIS或其他地方的问题。