Asp.net mvc 2 上载时重置ASP.NET连接

Asp.net mvc 2 上载时重置ASP.NET连接,asp.net-mvc-2,file-upload,upload,uploading,image-uploading,Asp.net Mvc 2,File Upload,Upload,Uploading,Image Uploading,我的应用程序(ASP.NET MVC 2)出现问题,无法上传文件(在我的例子中是图像)。我已将web.config更改为接受高达20MB的文件,并尝试上载一个只有3MB的文件 应用程序本身有两种上传方式。启动库的初始上载,然后附加到库的附加上载 最初的效果像一个符咒,但附加的一个失败,没有任何解释。即使我重新上传初始图像作为附加,它仍然失败 我在这件事上有点纠结,所以我很感激你们能提供的任何帮助 提前谢谢 编辑 如果我用Firebug“黑客”表单并将其定向到初始上传Url,它会工作,但当它定向到

我的应用程序(ASP.NET MVC 2)出现问题,无法上传文件(在我的例子中是图像)。我已将web.config更改为接受高达20MB的文件,并尝试上载一个只有3MB的文件

应用程序本身有两种上传方式。启动库的初始上载,然后附加到库的附加上载

最初的效果像一个符咒,但附加的一个失败,没有任何解释。即使我重新上传初始图像作为附加,它仍然失败

我在这件事上有点纠结,所以我很感激你们能提供的任何帮助

提前谢谢

编辑

如果我用Firebug“黑客”表单并将其定向到初始上传Url,它会工作,但当它定向到Url时,它应该发布到它失败

编辑2

根据Rob的请求,以下是处理初始库和附加图像的代码:

[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
    });
}
旁注:


Cassini,VS 2010的内置web服务器,可能是原因吗?

好的,所以我想出来了,它只在我的机器上本地安装了很长时间的IIS+配置,让它告诉我,我在路由中没有拼写
controller
,因为
controlls

真烦人,这一切才得到真正的错误,所以卡西尼号是部分错误


因此,这个故事的寓意是,确保拼写正确。

我们需要看一些代码来帮助您解决这个问题。主要原因是处理上传和追加的代码之间必须有所不同。确定这种差异是什么以及它如何影响上传将是这个问题的答案(对你来说=)好吧,我在上面的编辑中发布了代码,但我认为这对你没有帮助,因为我不认为路由被击中,因此我认为代码根本没有被执行。。。但我可能错了。。。