asp.net-mvc – 为什么HttpContext.Current在asp.net mvc中的用户定义类中始终为n
|
我创建了一个名为MyLongRunningClass的类,它包含一个方法: public string ProcessLongRunningAction(IEnumerable<HttpPostedFileBase> files,string id)
{
int currentIndex = 0;
foreach (HttpPostedFileBase file in files)
{
currentIndex++;
lock(syncRoot)
{
string path=HttpContext.Current.Server.MapPath("~//Content//images //"+file.FileName);//Excecption is created here........
file.SaveAs(path);
}
Thread.Sleep(300);
}
return id;
}
从控制器调用此方法,使用文件列表保存在images目录中.每当执行HttpContext.Current.Server.MapPath(“// Content // images //”file.FileName)时,抛出NullReferenceException,并且HttpContext.Current始终为null.当我使用session时会发生同样的事情.我不知道代码有什么问题. 解决方法看起来您在一个单独的线程上运行ProcessLongRunningAction.但是,当您未在原始请求线程中运行时,HttpContext.Current将返回null.这是explained here. 如果在创建的每个线程上手动设置上下文,则可以使用它.这在SO中的类似问题上进行了讨论,如here和here. 但是,考虑到你的问题中的代码,如果你只是为该方法中的路径添加一个参数会更好,正如Johann Blais建议的那样.然后,您将解析原始请求线程中的路径并将其传递给该方法,然后该方法可以在分离的线程上运行.这样你的方法就不依赖于HttpContext.Current. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 在乌龟SVN操作后丢失的IIS_IUSRS权限
- asp.net-mvc-3 – ASP.NET MVC 3书籍计划
- asp.net-mvc – MVC项目中的System.Globalization.CultureN
- asp.net-mvc – 我可以在asp.net mvc中结束视图的渲染吗?
- asp.net-mvc – 使用ViewData或不使用ViewData
- asp.net-mvc-3 – 造型ASP.NET MVC验证错误?
- ASP.NET Active Directory成员资格提供程序和SQL配置文件提
- asp.net-mvc – ASP.NET MVC的初学者在线资源是什么?
- asp.net – 防止页面在回发后滚动
- asp.net-mvc – 在kendo模板中渲染剑道控件(Razor)
- ASP.Net中的Vb6“Tag”属性等价物?
- ASP.NET(C#)应用程序配置文件app.config/web.con
- asp.net-mvc – 在MVC3中下载Azure Blob文件
- asp.net – 如何在没有实体框架的MVC中使用Simpl
- asp.net – 与WCF和其他Web服务有什么区别?
- asp.net-mvc – ASP.NET MVC控制器的静态方法
- asp.net-mvc-3 – ajax – 防止双击提交
- asp.net-identity – 为什么一个站点的ASP.NET身
- asp.net – 具有完全内存错误的WCF服务(内存门检
- ASP.Net Web应用程序安全性不适用于IIS 7?
