GDI+ 保存时发生一般性错误

A generic error occurred in GDI+ saving

我正在尝试将文件从一台服务器保存到另一台服务器。用户将上传一个 jpeg 文件到服务器。在我的控制器中,我使用 "HttpPostedFileBase" 获取文件数据。如果我想将这个文件上传到本地服务器,它没有问题(Web-based 管理应用程序 IP 是 xxx.xxx.xxx)。但是,如果我想将数据上传到另一台服务器(IP 是 yyy.yyy.yyy),我会收到标题上显示的错误。

我也在模拟访问感兴趣的文件夹。该文件夹在 (yyy.yyy.yyy) 台计算机上具有 IIS_USER、NetworkService、Everyone 用户完全管理员权限。

我也尝试过使用文件复制来执行此代码,移动到 exe 文件中,但我没有遇到任何错误。因此,此代码仅在 ASP.Net MVC 应用程序中给出错误。

您可以查看下面的部分代码:

if (isImpersonated)
        {

            //File.ResizeImage(1000, 1000).Save(Server.MapPath(Path.Combine(WebConfigurationManager.AppSettings["PicturePath"], fileName)));
            //File.ResizeImage(500, 500).Save(Server.MapPath(Path.Combine(WebConfigurationManager.AppSettings["MarinaPicturePath"], string.Format("{0}-medium{1}", imgName, Path.GetExtension(File.FileName)))));
            //File.ResizeImage(250, 250).Save(Server.MapPath(Path.Combine(WebConfigurationManager.AppSettings["MarinaPicturePath"], string.Format("{0}-small{1}", imgName, Path.GetExtension(File.FileName)))));

            //File.Copy("C:\test\asd.txt", "\\31.123.1.123\C$\test\asd123.txt");
            //System.IO.File.Copy("C:\test\asd.txt", "\\31.123.1.123\C$\test\asd123.txt");   


            //File.ResizeImage(1600, 1200).Save(Server.MapPath(Path.Combine(WebConfigurationManager.AppSettings["PicturePath"], fileName)));

            File.ResizeImage(1000, 1000).Save(Path.Combine("\\31.123.1.123\C$\test\", fileName));
            File.ResizeImage(500, 500).Save(Server.MapPath(Path.Combine("\\31.123.1.123\C$\test\", string.Format("{0}-medium{1}", imgName, Path.GetExtension(File.FileName)))));
            File.ResizeImage(250, 250).Save(Server.MapPath(Path.Combine("\\31.123.1.123\C$\test\", string.Format("{0}-small{1}", imgName, Path.GetExtension(File.FileName)))));

            GC.Collect();
            //var asd = StreamToByteArray(File.InputStream);
            //System.IO.File.WriteAllBytes(Path.Combine("\\31.123.1.123\C$\test\", fileName), asd);

        }

我找到答案了!如果有人会得到这个错误,应该检查 Impersination class 并设置 const int LOGON32_LOGON_INTERACTIVE = 9