我使用一个超文本传输协议处理程序在'ProcessRequest‘中提出一个文件download.Basically代码从数据库中检索数据,创建一个现有模板电子表格的临时副本,使用GUID作为其名称,并使用COM将从数据库中检索到的数据逐个单元地写入其中,提出一个文件下载并删除临时电子表格created.This整个过程通常需要大约4-5 mins.But当我们尝试同时测试此过程时,大约需要15分钟。
我想知道将'IsReusable‘布尔值设置为true是否有助于提高performance.But,我不确定它是否安全。
有没有人能帮我一下?
**更新:**因为我为每个创建的临时文件使用了不同的文件名,所以我假设不会有安全issues.But仍然不确定。
发布于 2010-09-16 01:24:46
IsReusable属性将执行您认为它所执行的操作。它将重用现有的Handler,而不是构造一个全新的Handler来在每次发出请求时使用。如果你有在构造函数中创建的实例变量,它可以提高性能,但前提是它们的创建成本很高。
此外,如果您在处理程序中维护任何类型的状态,那么您将它保留在其中的任何状态都将用于下一次请求。这可能会产生意想不到的副作用。
如果您的大部分过程发生在ProcessRequest方法中,那么瓶颈就在那里,您应该使用性能分析来看看哪里可以提高性能。
发布于 2010-09-16 01:25:56
仅当此HttpHandler实例需要处理多个请求时,IsReusable属性才设置为true。可能有一个不同的Web.Config设置来解决您的问题,可能是httpRuntime属性的executionTimeout属性:
<httpRuntime appRequestQueueLimit="100" executionTimeout="600" /> 更多信息:
http://articles.sitepoint.com/article/web-config-file-demystified
https://stackoverflow.com/questions/3720046
复制相似问题