上传图片后会话丢失

时间:2011-11-05 11:41:18

标签: image asp.net-mvc-3 session

您好,在我的mvc3应用程序中,我遇到以下问题: 我的用户可以在使用表单身份验证登录后上载图像。现在有客户抱怨他们无法上传文件。我调查了这个问题,看到当他们上传图片时,所有会话都会丢失。它们不再登录,因此当我尝试获取登录以将图像放入数据库时​​,有一个对象是空引用错误。我看到图像已正确上传但它们已注销,我认为所有会话都丢失了。也许这是因为应用程序池已被回收或工作过程?他们无法上传大于500kb的图像,为什么应用程序池应该回收?谁能建议我做什么?提前谢谢。

EDIT添加了一些代码:

查看:

    @using (Html.BeginForm("Upload", "Fotos", FormMethod.Post, new { enctype = "multipart/form-data" }))
    {
        <label>Afbeelding:</label><br />
        <input type="file" name="file" id="file" title="Kies uw afbeelding" />
         <br />
        <label>Titel:</label><span style="color:Red;font-weight:bold;"> @MvcHtmlString.Create(ViewBag.titel)</span><br />
        <input type="text" name="Title" value="" />
        <br /><label>Omschrijving:</label><span style="color:Red;font-weight:bold;"> @MvcHtmlString.Create(ViewBag.omschrijving)</span><br />
        <textarea name="Beschrijving" rows="4" cols="25"></textarea><br /><br />
        <input type="submit" value="Foto uploaden" />
    }

这是控制器代码

    [HttpPost]
    public ActionResult Upload(HttpPostedFileBase file, string Title, string Beschrijving)
    {
        try
        {
            MembershipUser currentUser = Membership.GetUser(User.Identity.Name, true /* userIsOnline */);
            string uploader = currentUser.UserName;
            string uploadermail = currentUser.Email;

                using (var ctx = new DB_24468_weerstatEntities())
                {
                    var imagetype = file.ContentType;
                    if (imagetype.Contains("image"))
                    {
                        if (file.ContentLength > 0 && file.ContentLength < 500000)
                        {
                            var fileName = Path.GetFileName(file.FileName);

                                var path = Path.Combine(Server.MapPath("~/Content/Images/Weerfotos"), fileName);
                                file.SaveAs(path);
                                var link = "/Content/Images/Weerfotos/" + fileName;
                                var image = new Image();
                                image.Name = fileName;
                                image.Url = "../.." + link;
                                image.Approved = false;
                                image.Username = uploader;
                                image.Description = Beschrijving;
                                image.Title = Title;
                                ctx.AddToImages(image);
                                ctx.SaveChanges();

                        }
                    }

                }

            return View();          
        }
        catch (Exception ex)
        {
            ErrorSignal.FromCurrentContext().Raise(ex);
            throw;
        }

尝试获取当前用户名或电子邮件时代码直接失败,因为会话丢失..如果我没有得到任何会话详细信息,一切正常,但用户在发布他的图像后退出.. < / p>

0 个答案:

没有答案