【问题标题】:publishing .net site in Godaddy在 Godaddy 中发布 .net 网站
【发布时间】:2011-12-16 01:27:04
【问题描述】:

我正在使用 microsoft visual studio 来构建和发布我的网站。我能够通过 ftp 发布到我的主机 godaddy。

在我发布到网络之前,我的网站在本地运行良好。

我在尝试上传照片时遇到此错误。需要设置文件夹读写执行吗?

“/”应用程序中的服务器错误。

拒绝访问路径“D:\Hosting\8722453\html\Pictures\1bd71b0f-bd55-48a7-9368-2e8faadf5830.jpg”。

我相信问题出在这个代码块上。

if (FileUpload1.HasFile)
                try
                {
                    var FileExtension = Path.GetExtension(FileUpload1.PostedFile.FileName);
                    //FileUpload1.PostedFile.ContentType == 
                    if (FileUpload1.PostedFile.ContentType.ToLower() == "image/jpg" ||
                    FileUpload1.PostedFile.ContentType.ToLower() == "image/jpeg" ||
                    FileUpload1.PostedFile.ContentType.ToLower() == "image/pjpeg" ||
                    FileUpload1.PostedFile.ContentType.ToLower() == "image/gif" ||
                    FileUpload1.PostedFile.ContentType.ToLower() == "image/x-png" ||
                    FileUpload1.PostedFile.ContentType.ToLower() == "image/png")
                    {
                        var Myguid = Guid.NewGuid().ToString("N");

                        var newName = Guid.NewGuid() + FileExtension;
                        //Map path to folder
                        string realpath = Server.MapPath("Pictures\\") + newName;
                        //Where jays converter will store the new image.
                        string temppath = Server.MapPath("Pictures\\");
                        string newpath = Server.MapPath("Images\\");

                        FileUpload1.SaveAs(realpath);

                        Label1.Text = "File name: " +
                             FileUpload1.PostedFile.FileName + "<br>" +

                             FileUpload1.PostedFile.ContentLength + " kb<br>" +
                             "Content type: " +
                             FileUpload1.PostedFile.ContentType;


                        InsertMembers insert = new InsertMembers();
                        int age = Int32.Parse(txtAge.Text);
                        insert.InsertNewMember(txtEmail.Text, Myguid, txtName.Text, txtCity.Text, txtState.Text, txtDescription.Text, age, gender);


                        //Get Member Id to Insert into Pictures table
                        GetMemberInfo GetID = new GetMemberInfo();
                        int UMemberId = GetID.GetMemberId(Myguid);
                        Displayme.Text = newName.ToString();

                        //Now that i have member Id Lets insert new picture into picture table
                        Picture InsertnewPictures = new Picture();
                        int insertpics = InsertnewPictures.InserNewPicture(UMemberId, newName, 0);

                        PhotoUtils.JpegConvertor mynewvar = new PhotoUtils.JpegConvertor(temppath, newpath, newName, 300, 400, false);
                        //PhotoUtils.JpegConvertor mynewvare = new PhotoUtils.JpegConvertor()
                    }
                    else
                    {
                        Displayme.Text = "You can only upload jpg's png's or bmp images.";
                    }
                }
                catch (Exception ex)
                {
                    //Handle the error
                    throw ex;
                }

【问题讨论】:

  • 你确定上面显示的路径可以访问吗?

标签: file-upload permissions publishing


【解决方案1】:

是虚拟目录中的图片和图像目录吗?如果不是,这是一个问题。接下来要检查的是用户可以读取和写入这些目录。另外需要注意的是,如果在给定的时间段内更改了足够多的文件,IIS 进程将重新启动网站(或应用程序池,我不确定它们是否相同)。

这可以在 IIS 中进行配置,但我不确定。我会尽量限制文件写入的数量并使用内存中的图像,只将最终结果写入磁盘。另一种选择是将图像存储在数据库中。无需读取/写入虚拟目录下的文件。

【讨论】:

  • 我检查了读写权限,这似乎解决了这个问题,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-05
相关资源
最近更新 更多