- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在编写一个 IHttpHandler
,我需要实现一个 IsReusable
属性。当我查看 MSDN documentation它说:
Gets a value indicating whether another request can use the IHttpHandler instance.
这不是很有帮助。 我应该在哪些情况下使用可重用处理程序,在哪些情况下不应重用?
跟进问题:
Reusable = true
时,我可以维护状态(即类变量)吗??最佳答案
此属性指示是否可以使用同一个 IHttpHandler 实例处理多个请求。默认情况下,在请求管道的末尾,放置在 HttpApplication 的 handlerRecycleList 中的所有 http 处理程序都设置为 null。如果处理程序是可重用的,则不会将其设置为 null,并且该实例将在下一个请求中重用。
主要的好处是性能,因为要垃圾收集的对象会更少。
可重用处理程序最重要的痛点是它必须是线程安全的。这不是微不足道的,需要一些努力。
如果您只使用托管资源,我个人建议您保留默认值(不可重用),因为垃圾收集器应该可以轻松处理它们。与引入难以发现的线程错误的风险相比,可重用处理程序带来的性能提升通常可以忽略不计。
如果您决定重用处理程序,您应该避免在类变量中维护状态,因为如果同时访问处理程序实例,多个请求将写入/读取值。
关于c# - IHttpHandler.IsReusable 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5500950/
我想从 IHttpHandler 类流式传输数据。我正在从数据库中加载大量行,对它们进行序列化和压缩,然后通过网络将它们发送出去。另一方面,我希望我的客户端能够在服务器完成所有对象的序列化之前解压缩和
我有一个 global.asax,如果注册了具有特定名称的 IHttpHandler,我想检查 Application_Start 方法。我该怎么做? 处理程序可以在应用程序自己的 web.confi
我编写了一个 Ihttphandler 来下载文件: public class DescargaFichero : IHttpHandler { public void ProcessRequ
我正在尝试为 MVC Controller 执行自定义 ActionResult。在我正在查看的示例中,它显示了下面的代码片段。我的 System.Web.Mvc.MvcHttpHandle 没有实现
所以我有 UI 可以在我的应用程序中创建日历事件。创建新事件时,我会为我的所有用户(大约 3,000)创建通知。我知道这需要一段时间,因为我需要为每个用户写入数据库以创建他们的通知,所以我创建了一个继
我有一个 IHttpHandler,我相信它可以从重用中获益,因为它的设置成本很高,而且是线程安全的。但是正在为每个请求创建一个新的处理程序。我的处理程序没有被重复使用。 以下是我的简单测试用例,没有
我的问题很简单(尽管答案很可能不是):我试图决定如何在 C#/ASP.NET 中实现服务器端上传处理程序。 我已经使用了 HttpModules(IHttpModule 接口(interface))和
我正在编写一个 IHttpHandler,我需要实现一个 IsReusable 属性。当我查看 MSDN documentation它说: Gets a value indicating whethe
我想使用 IHttpHandler 方法在 .Net-Project 中使用 XSP 或更好的 mod_mono。 我有以下类(class)(很简单: public class Class1 : IH
我正在尝试让自定义处理程序适用于 ASP.NET 3.5 中的特定 URL(或一组 URL)。 处理程序实际上并没有做任何重要的事情 - 它只是记录请求。如果有人认为相关,我可以发布代码,但我真的认为
我想使用类似 HttpServerUtility.Execute 的东西执行 IHttpHandler并将处理程序响应写入 MemoryStream然后可以将其解析为 http 响应(在功能上,我想访
我有一个执行三个方法的 IHttpHandler: a = 方法_A b = 方法_B c = Method_C(a,b) 方法A和方法B的计算是完全独立的。方法 C 使用方法 A 和 B 的结果。目
我有一个实现 IRequiresSessionState 的 IHttpHandler。大多数服务器上一切正常,但有 2 台服务器(一台 IIS 7.0 和一台 IIS 7.5)给我空 session
我有一个 IHttpHandler,我想连接到 OutputCache 支持,这样我就可以将缓存数据卸载到 IIS 内核。我知道 MVC 必须以某种方式执行此操作,我在 OutputCacheAttr
出于 CORS 和安全目的,我们有一个网络应用程序通过 .NET IHttpHandler(称为 proxy.ashx)路由许多请求。一些资源加载速度快,而另一些资源加载速度慢,这取决于这些资源所需的
我已经想出了如何绕过 ServiceStack 来实现我自己的 HTTP 处理程序来提供文件作为下载,并且它运行良好。但是,我想知道现在我在 servicestack 之外,是否可以以某种方式访问
我有一个工厂,其中包含下面给出的函数: TestOperation: function(filename) { var senddata = { filename: filen
我制作了一个派生自 MvcHandler 的自定义处理程序。我的路由使用自定义 RouteHandler,它返回 GetHttpHandler() 的新处理程序,并且我在自定义处理程序中重写 Proc
我有处理文件上传的 ASP.NET IHttpHandler 模块。我在配置文件中将文件大小限制设置为 50mb 但上传 1
在我的 IHttpHandler 类(对于 .ashx 页面)中,我想在目录中搜索某些文件,并返回相关 URL。我可以获取文件,没问题: string dirPath = context.Server
我是一名优秀的程序员,十分优秀!