gpt4 book ai didi

c# - IHttpHandler IsReusable,但未被重新使用

转载 作者:太空狗 更新时间:2023-10-29 23:24:52 31 4
gpt4 key购买 nike

我有一个 IHttpHandler,我相信它可以从重用中获益,因为它的设置成本很高,而且是线程安全的。但是正在为每个请求创建一个新的处理程序。我的处理程序没有被重复使用。

以下是我的简单测试用例,没有昂贵的设置。这个简单的案例说明了我的问题:

public class MyRequestHandler : IHttpHandler
{
int nRequestsProcessed = 0;

public bool IsReusable
{
get { return true; }
}

public void ProcessRequest(HttpContext context)
{
nRequestsProcessed += 1;
Debug.WriteLine("Requests processed by this handler: " + nRequestsProcessed);
context.Response.ContentType = "text/plain";
context.Response.Write("Hello World");
}
}

Requests processed by this handler: 1
Requests processed by this handler: 1
Requests processed by this handler: 1
Requests processed by this handler: 1... at least 100 times. I never see > 1.

我是否误解了 IsReusable 的工作原理?还有什么可以阻止重用的吗?如果有任何不同,我的处理程序是从 Silverlight 应用程序调用的。

最佳答案

IsReusable 不是保证。

只需重构您的处理程序并将所有交叉请求状态放入不同的类中。在 最佳实践 中明确分离 Web 应用程序中的交叉请求状态,因为这很危险。

关于c# - IHttpHandler IsReusable,但未被重新使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12239711/

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