Wcf第一次请求很慢?服务解决方案?

时间:2014-04-22 09:02:45

标签: c# wcf soap

每次我的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>

enter image description here

感谢您的建议。

1 个答案:

答案 0 :(得分:2)

我怀疑它与空闲时间之后的回收和终止过程有关。 IIS上的每个应用程序都在某些AppPool下运行。我已在DefaultAppPool(win 8.1)上检查了我的设置,这些设置在下面。

Idle time out

Default recycle settings

我知道你写的是你在服务器上将IIS空闲时间设置为0。但你有没有选中正确的App Pool?这是我在第一个屏幕截图中显示的这个值吗?

我还会检查一段时间后服务器上是否存在某些w3p进程(负责您的WCF应用程序并在您设置的AppPool标识下运行)。此外,我会尝试自我托管WCF服务,以检查它是否是IIS或其他地方的问题。