【问题标题】:Access HttpContext.Current.Application from batch process c#从批处理c#访问HttpContext.Current.Application
【发布时间】:2012-07-25 04:44:09
【问题描述】:

我有一个 C# ASP.NET Web 应用程序,它启动一个线程,运行一个名为 SiteCrawler.cs 的类中的一些方法。

HttpContext.Current.Application 中,我想在所有线程完成运行时保存一些值。我的问题是HttpContext.Current 对象在生成的线程中是null,因为它在那里不存在。

我试图搜索 Stackoverflow 的每一寸以找到解决方案,但没有任何运气......

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    我建议在生成线程时将 HttpContext 作为参数传递。就个人而言,我会删除您对 HttpContext 的依赖并创建一个对象,其工作是同步您的线程(或存储它们的结果),并可用于在并行处理完成后执行后期处理。

    HttpContext.Current.Application 是一个单例,它将存在于所有线程中......这是一个网络应用程序吗?如果不是,您始终可以自己初始化应用程序并将其分配给 HttpContext.Current.Application。

    【讨论】:

    • 你开始得很好,然后掉下悬崖。 HttpContext.Current 是线程静态的,否则一次服务多个请求会出现问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-07
    • 1970-01-01
    相关资源
    最近更新 更多