0

ファイルの読み込み中に TempData["stream1"] に保存する InputStream があります。次に、別のコントローラーでボタンをクリックしてこのファイルを処理します。

InputStream を Temp Data に保存する理由は、次のボタン クリックでそれにアクセスするためです。

public string Upload(HttpPostedFileBase fileData)
{
  Stream stream1 = fileData.InputStream;
  TempData["stream1"] = stream1;
  return "ok";
}

次に、TempData からストリームを取得します。ボタン「View」は以下のアクションを呼び出します

[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 にアクセスしようとするとキーと値が失われます。

理由がわかりません。どんな理由/解決策でも大歓迎です。

4

0 に答える 0