ASP.NET соединение сбрасывается при загрузке - PullRequest
1 голос
/ 25 августа 2010

У меня проблема с моим приложением (ASP.NET MVC 2), когда я не могу загрузить файлы (изображения в моем случае). Я изменил файл web.config, чтобы он принимал до 20 МБ, и я пытаюсь загрузить файл размером всего 3 МБ.

Само приложение имеет два способа загрузки. Первоначальная загрузка, которая запускает Галерею, а затем дополнительная загрузка для добавления в Галерею.

Начальная буква работает как очарование, но добавляющая не получается без объяснения причин. Даже если я перезагружу исходное изображение как приложение, оно все равно не получится.

Я немного застрял в этом, поэтому я был бы признателен за любую помощь, которую вы, ребята, можете предложить.

Заранее спасибо!

EDIT

Если я «взломаю» форму с помощью Firebug и перенаправлю ее на исходный URL-адрес загрузки, он будет работать, но когда он направляется на URL-адрес, его следует опубликовать на нем не удастся ...

РЕДАКТИРОВАТЬ 2

По запросу Роба, вот код, который обрабатывает исходную галерею и добавляет изображение:

[HttpPost, ValidateAntiForgeryToken]
public RedirectToRouteResult PutGallery(    //  Move to Ajax
    [Bind(Prefix = "Gallery", Include = "ClubId,EventId,RHAccountId,RHCategoryId,Year")] Gallery Gallery,
    HttpPostedFileBase File) {
    if (ModelState.IsValid && (File.ContentLength > 0)) {
        if (Gallery.RHAccountId > 0) {
            Gallery.RHUser = this.fdc.RHAccounts.Single(
                a =>
                    (a.RHAccountId == Gallery.RHAccountId)).RHUser;
        } else {
            if (!this.fdc.RHUsers.Any(
                u =>
                    (u.User.Name == Gallery.Username))) {
                if (!this.fdc.Users.Any(
                    u =>
                        (u.Name == Gallery.Username))) {
                    Gallery.RHUser = new RHUser() {
                        User = new User() {
                            Name = Gallery.Username
                        }
                    };
                } else {
                    Gallery.RHUser = new RHUser() {
                        User = this.fdc.Users.Single(
                            u =>
                                (u.Name == Gallery.Username))
                    };
                };
            } else {
                Gallery.RHUser = this.fdc.RHUsers.Single(
                    u =>
                        (u.User.Name == Gallery.Username));
            };
        };

        Image Image = new Image() {
            Gallery = Gallery
        };

        this.fdc.Galleries.InsertOnSubmit(Gallery);
        this.fdc.Images.InsertOnSubmit(Image);
        this.fdc.SubmitChanges();

        Files.Save(Image.ImageId, File);

        return RedirectToAction("Default", "Site");
    } else {
        return RedirectToAction("Default", "Site");
    };
}

[HttpPost, ValidateAntiForgeryToken]
public RedirectToRouteResult PutImage(
    [Bind(Prefix = "Image", Include = "GalleryId")] Image Image,
    HttpPostedFileBase File) {
    Gallery Gallery = this.fdc.Galleries.Single(
        g =>
            (g.GalleryId == Image.GalleryId));

    if (File.ContentLength > 0) {
        this.fdc.Images.InsertOnSubmit(Image);
        this.fdc.SubmitChanges();

        Files.Save(Image.ImageId, File);
    };

    return RedirectToAction("Gallery", "Site", new {
        Category = Gallery.RHCategory.Category.EncodedName,
        GalleryId = Gallery.GalleryId
    });
}

Sidenote:

Может быть причиной тому является Cassini, встроенный в веб-сервер VS 2010?

1 Ответ

0 голосов
/ 26 августа 2010

Хорошо, так что я понял это, потребовалась длительная установка IIS локально на моей машине + конфигурация, чтобы он сказал мне, что я пропустил controller как controlls в маршрутах.

Действительно досадно, что все это потребовалось, чтобы получить реальную ошибку, поэтому Кассини был частично виноват ...

Итак, мораль этой истории в том, чтобы убедиться, что вы все правильно написали.

...