gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 10:46:26 24 4
gpt4 key购买 nike

每次我的 WCF 服务空闲一段时间(大约 15 分钟或更长时间)时,它都需要一些时间来初始化新请求。通常响应时间为 2-3 秒,第一个请求大约为 30 秒。事实上,它类似于此处解释的帖子。 Why is the first WCF client call slow?

但 channel 工厂的解决方案似乎在客户端,它仅适用于自动生成代理的情况。我正在服务器端寻找解决方案,因为我的客户端没有使用任何代理类或 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

感谢您的建议。

最佳答案

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

Idle time out

Default recycle settings

我知道您写道您在服务器上将 IIS 空闲时间设置为 0。但是您是否检查了正确的应用程序池?我在第一个屏幕截图上显示的是这个值吗?

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

关于c# - Wcf 第一次请求很慢?服务解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23215040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com