首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IHttpAsyncHandler卸载

IHttpAsyncHandler卸载
EN

Stack Overflow用户
提问于 2012-12-23 14:57:52
回答 1查看 210关注 0票数 0

我有一个需要从web服务调用的大型COM对象。因此,我实现了一个IHttpAsyncHandler类,希望保存对COM对象的引用。这样,两次请求之间的加载时间将会缩短。我在Windows 2003服务器上运行IIS 6。

看起来HttpHandler程序集(?)处理后卸载,因为我的静态列表在后续调用中为空。即使第二个调用几乎是即时的,它也会发生:

代码语言:javascript
复制
    public class x2Handler : IHttpAsyncHandler, System.Web.SessionState.IRequiresSessionState
{
    public bool IsReusable { get { return true; } }
    private static List<AsynchOperation> _asynch = new List<AsynchOperation>();
    public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)
    {
        AsynchOperation asynch = null;
        foreach( AsynchOperation op in _asynch){
            if (op.Completed){
                asynch = op;
                break;
            }
        }
        if (asynch == null)
        {
            asynch = new AsynchOperation();
            _asynch.Add(asynch);
        }
        asynch.Context = context;
        asynch.Callback = cb;
        asynch.State = extraData;
        asynch.StartAsyncWork();
        return asynch;
    }

    public void EndProcessRequest(IAsyncResult result)
    {
    }

    public void ProcessRequest(HttpContext context)
    {
        throw new InvalidOperationException();
    }

}

每当调用进程时,_asynch都是空的。应用程序池似乎没有任何会导致卸载程序集的设置。

如何让静态变量在两次调用之间保持其值?

编辑:我不知道它是否有助于弄清楚这一点,但如果我有一个断点,它被击中,然后我删除断点,当代码再次执行时(因为另一个HTTP请求),断点仍然是设置的。

编辑:我给类添加了一个析构函数,并在其中放置了一个断点,以确定是什么杀死了这个类,它是从"Appdomain Transition“中调用的。

编辑:我尝试从IRequiresSessionState继承,然后将测试值分配给context.Session和context.Application,两者都不会在调用之间保留它们的值。那么,有没有可能在两次调用之间释放应用程序池呢?

EN

回答 1

Stack Overflow用户

发布于 2013-01-03 09:24:44

实际的问题是无关的。在调用COM对象之前,我编写了一个COM对象可以访问的文本文件。然后将文本文件的名称传递给COM对象。问题是我将文件写入到安装HTTPHandler的当前目录中。

出于猜测,ASP.Net会监视目录,并且在当前处理完成后,bin文件夹中的任何更改都会导致应用程序卸载。因此,应用程序将为每个调用卸载。移动文本文件解决了问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14009253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档