gpt4 book ai didi

c# - session 值在回发和页面刷新时变为空

转载 作者:太空宇宙 更新时间:2023-11-03 14:19:14 24 4
gpt4 key购买 nike

在我的网页中,我无法在回发和页面刷新时获取 session 变量。

问题是

如果页面不是 IsPostback,那么我可以获取 session 变量。但如果页面回发,则会出现错误。

当我将任何文件上传到服务器时会出现此错误。我正在使用 asynchfileupload 上传图像并将其存储到 session 变量。然后单击按钮,我将数据保存到目录。

但这种情况并不经常发生。

这是我的代码

protected void AsynImageLoader_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
{
if (AsynImageLoader.PostedFile != null)
{
string extension = System.IO.Path.GetExtension(AsynImageLoader.PostedFile.FileName);

if (extension == ".jpg" || extension == ".gif" || extension == ".jpeg" || extension == ".png")
{
HttpPostedFile file = AsynImageLoader.PostedFile;
Session["TempImage"] = ReadFile(file);
}
}
}

点击按钮

       var storedImage = Session["TempImage"] as byte[];
String Strthumbpath = Server.MapPath("content\\thumbnail\\");
if (storedImage != null)
{
System.Drawing.Image image = GetImage(storedImage);

if (image != null)
{
image.Save(Strthumbpath + strFileName);
}

}
///inserting values to datbase.

经过大量谷歌搜索后,我了解到当任何文件添加到任何子目录或编辑 webconfig 时,都会导致应用程序重新启动。

如果是这样我该如何解决..

提前致谢。

最佳答案

好吧,我刚刚使用 ASP.NET MVC 进行了测试,它对我来说工作正常。我所做的是创建两个 Action ,一个用于设置 session 变量,另一个用于创建文件,所以我将默认的 asp.net mvc 应用程序主 Controller 修改为:

  public ActionResult Index()
{
ViewBag.Message = Session["Sample"];

return View();
}

public ActionResult About()
{
return View();
}

public ActionResult AddSessionVariable()
{
Session["Sample"] = "Sample session variable";
return RedirectToAction("Index");
}

public ActionResult CreateFile()
{
var bmp = new Bitmap(100, 100);
bmp.Save(Server.MapPath(string.Format(@"\Images\{0}", DateTime.Now.Ticks)));
return RedirectToAction("Index");
}

因此,当我转到 AddSessionVriable 时,它​​会向 session 添加一些内容,并且索引操作会将该 session 变量呈现到页面,我可以看到,它并没有消失。然后我去创建文件,我的 session 变量仍然存在,所以不会重新启动应用程序。我很确定,Web 窗体应用程序的工作方式相同,可能是您在保存文件时丢失了一些异常(例如,由于缺少权限)并重新启动了您的应用程序。

关于c# - session 值在回发和页面刷新时变为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5866193/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com