我有一个 InputStream,我在文件加载期间将其保存到 TempData["stream1"] 中。然后,我将通过在不同控制器中单击按钮来处理此文件。
我将 InputStream 保存在 Temp Data 中的原因是为了在我的下一个按钮单击中访问它。
public string Upload(HttpPostedFileBase fileData)
{
Stream stream1 = fileData.InputStream;
TempData["stream1"] = stream1;
return "ok";
}
接下来我从 TempData 取回我的流。按钮“查看”将调用以下操作
[Authorize]
public ActionResult MyView(string IsAll)
{
string html = "";
TempData["HeaderDetailHTML"] = "";
Stream str = (Stream)TempData["stream1"];
if (str != null)
{
if (str.Length == 0)
{
}
else
html = ProcessRTFFile(str, IsAll);
}
TempData["CustomHTML"] = html;
return PartialView("Widgets/MyList",null);
}
现在,问题是,以上在带有 asp.NET IIS 开发服务器的开发环境中工作得很好,但是当我将它部署到 IIS 7 或任何服务器时,这只适用于容量较小的小文件。对于较大的文件,当我尝试访问 TempData 时,它会丢失密钥和值。
我想不出原因。任何理由/解决方案将不胜感激。