Сессии потеряны после загрузки изображения - PullRequest
1 голос
/ 05 ноября 2011

Привет, в моем приложении mvc3 у меня есть следующая проблема: Мои пользователи могут загрузить изображение после того, как они вошли в систему с аутентификацией форм.Сейчас есть клиенты, которые жалуются, что не могут загрузить файл.Я исследовал эту проблему и вижу, что при загрузке изображения все сеансы теряются.Они больше не входят в систему, поэтому при попытке получить логин для помещения изображения в базу данных возникает ошибка ссылки на объект.Я вижу, что изображение загружено правильно, но они вышли из системы, и я думаю, что все сеансы потеряны.возможно, это из-за того, что пул приложений был переработан или рабочий процесс?Они не могут загружать изображения размером более 500 КБ, так почему же пул приложений должен перерабатываться?Кто-нибудь может подсказать, что мне делать?заранее спасибо.

РЕДАКТИРОВАТЬ добавил код:

Просмотр:

    @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;
        }

Код не работает напрямуюпри попытке получить текущее имя пользователя или адрес электронной почты, потому что сеанс потерян .. Если я не получаю никаких сведений о сеансе, все работает нормально, но пользователь вышел из системы после публикации своего изображения ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...