ASP.NET:System.UnauthorizedAccessException - 访问路径被拒绝 [英] ASP.NET: System.UnauthorizedAccessException - Access to Path Denied

查看:280
本文介绍了ASP.NET:System.UnauthorizedAccessException - 访问路径被拒绝的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个ASP.NET Web应用程序,执行以下操作:


  1. 读取一个Excel文件。

  2. excel文件将有一个位于其中的图像URL指向互联网上的某个地方。

  3. 程序读取每个图像URL并将其存储到网络中的临时文件夹中服务器。

  4. 然后应用程序调整图像的大小(更改宽度和高度)。

  5. 最后,应用程序将保存该图像





System.Net.WebException:在WebClient请求期间发生一个异常

---> System.UnauthorizedAccessException:
访问路径
'\abcserver\target03\3111\35644\www.testing.com\web\content \images\TempStorage\tempImage.jpg'
被拒绝。 at
System.IO .__ Error.WinIOError(Int32
errorCode,String maybeFullPath)at
System.IO.FileStream.Init(String path,
FileMode mode,FileAccess access,
Int32权限,Boolean useRights,
FileShare共享,Int32 bufferSize,
FileOptions选项,
SECURITY_ATTRIBUTES secAttrs,String
msgPath,Boolean bFromProxy)at
System。
System.Net.WebClient.DownloadFile(Uri
address,String fileName)的IO.FileStream..ctor(String
路径,FileMode模式,FileAccess
访问)--- End
内部异常堆栈跟踪---

在ProcessImage.GetFileFromUrl(String
imageFileUrl,String newFileName)

at
uploadexceldata.UploadExcelData (String
fileName)




  foreach(dt.Rows中的DataRow dr) /阅读每个excel行
{

if(dr [0] .ToString()!=)
{
id =;
path =;
manuId =;


id = dr [0] .ToString();
path = dr [1] .ToString();
fileNameOnly = iProImg.GetFileNameOnly(path);
objDb.openConnection();
strSqlGroupInfo =从制造商中选择ManufacturerID,其中id ='+ id +';

dTblManu = objDb.BuildDT(strSqlGroupInfo); //将数据填充到Datatable
objDb.closeConnection();
if(dTblManu.Rows.Count> 0)
{
manuId = dTblManu.Rows [0] [0] .ToString();
}

如果(manuId!=)
{
tempUploadPath =images / TempStorage /;
tempUploadPath = Server.MapPath(tempUploadPath);
if(!Directory.Exists(tempUploadPath))
{
Directory.CreateDirectory(tempUploadPath);
}
tempFilePath = tempUploadPath +\\tempImage.jpg;
tempFilePath = tempFilePath.Replace(/,\\);

previewPath = Server.MapPath(images / previews /+ manuId);
thumbNailPath = Server.MapPath(images / thumbnailails /+ manuId);

if(!Directory.Exists(previewPath))
{
Directory.CreateDirectory(previewPath);
}
if(!Directory.Exists(thumbNailPath))
{
Directory.CreateDirectory(thumbNailPath);
}
fileNameOnly =\\preview+ id +.jpg;
fileNameOnly = fileNameOnly.Replace(/,\\);
previewPath = previewPath + fileNameOnly;
tempPartialPathP =images\\previews\\+ manuId + fileNameOnly;

fileNameOnly =\\thumbnail+ id +.jpg;
thumbNailPath = thumbNailPath + fileNameOnly;
tempPartialPathT =images\\thumbnails\\+ manuId + fileNameOnly;


try
{

iProImg.GetFileFromUrl(path,tempFilePath);
rowCounter ++;
iProImg.ReSizeImage(tempFilePath,previewPath,previewSize);
iProImg.ReSizeImage(previewPath,thumbNailPath,thumbNailSize);

}
catch(异常ec)
{

errorRowCount ++;
iLog.LogErrorToFile(uploadExcel,ec.ToString(),path:+ path +,tempFilePath:+ tempFilePath);


}
finally
{
if(File.Exists(tempFilePath))
{
File.Delete(tempFilePath );
}
}
} //如果manuid!=
} // if(dr [0] .ToString()!=)

有没有人对如何解决这个异常有任何建议?

解决方案

尝试将.Net用户的访问权限设置为完全控制,从中读取/保存文件。


I have an ASP.NET web application which does the following:

  1. Reads an Excel file.
  2. The excel file will have an image URL located in it that points to somewhere on the internet.
  3. The program reads each image URL and store it into a temporary folder in the web server.
  4. The application then resizes (changes the width and height) of the image.
  5. Finally, the application will save that image to another folder.

    I am getting the following exception:

System.Net.WebException: An exception occurred during a WebClient request. ---> System.UnauthorizedAccessException: Access to the path '\abcserver\target03\3111\35644\www.testing.com\web\content\images\TempStorage\tempImage.jpg' is denied. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access) at System.Net.WebClient.DownloadFile(Uri address, String fileName) --- End of inner exception stack trace ---
at ProcessImage.GetFileFromUrl(String imageFileUrl, String newFileName)
at uploadexceldata.UploadExcelData(String fileName)

 foreach (DataRow dr in dt.Rows) // Reading each excel row
            {

                if (dr[0].ToString() != "")
                {
                    id= "";
                    path = "";
                    manuId = "";


                    id= dr[0].ToString();
                    path = dr[1].ToString();
                    fileNameOnly = iProImg.GetFileNameOnly(path);
                    objDb.openConnection();
                    strSqlGroupInfo = "select ManufacturerID from  manufacturers where id='" + id+ "'";

                    dTblManu = objDb.BuildDT(strSqlGroupInfo); // To Fill data to Datatable
                    objDb.closeConnection();
                    if (dTblManu.Rows.Count > 0)
                    {
                        manuId = dTblManu.Rows[0][0].ToString();
                    }

                    if (manuId != "")
                    {
                        tempUploadPath = "images/TempStorage/";
                        tempUploadPath = Server.MapPath(tempUploadPath);
                        if (!Directory.Exists(tempUploadPath))
                        {
                            Directory.CreateDirectory(tempUploadPath);
                        }
                        tempFilePath = tempUploadPath + "\\tempImage.jpg";
                        tempFilePath = tempFilePath.Replace("/", "\\");

                        previewPath = Server.MapPath("images/previews/" + manuId);
                        thumbNailPath = Server.MapPath("images/thumbnails/" + manuId);

                        if (!Directory.Exists(previewPath))
                        {
                            Directory.CreateDirectory(previewPath);
                        }
                        if (!Directory.Exists(thumbNailPath))
                        {
                            Directory.CreateDirectory(thumbNailPath);
                        }
                        fileNameOnly = "\\preview" + id+ ".jpg";
                        fileNameOnly = fileNameOnly.Replace("/", "\\");
                        previewPath = previewPath + fileNameOnly;
                        tempPartialPathP = "images\\previews\\" + manuId + fileNameOnly;

                        fileNameOnly = "\\thumbnail" + id+ ".jpg";
                        thumbNailPath = thumbNailPath + fileNameOnly;
                        tempPartialPathT = "images\\thumbnails\\" + manuId + fileNameOnly;


                        try
                        {

                            iProImg.GetFileFromUrl(path, tempFilePath);
                            rowCounter++;
                            iProImg.ReSizeImage(tempFilePath, previewPath, previewSize);
                            iProImg.ReSizeImage(previewPath, thumbNailPath, thumbNailSize);

                        }
                        catch (Exception ec)
                        {

                            errorRowCount++;
                            iLog.LogErrorToFile("uploadExcel", ec.ToString(), "path : " + path + ",tempFilePath :" + tempFilePath);


                        }
                        finally
                        {
                            if(File.Exists(tempFilePath))
                            {
                            File.Delete(tempFilePath);
                            }
                        }
                    } // If manuid!=""
                }  //if (dr[0].ToString() != "")

Does anyone have any suggestions on how to fix this exception?

解决方案

Try setting the access permissions to "Full control" for the .Net user from where you are reading/saving the files.

这篇关于ASP.NET:System.UnauthorizedAccessException - 访问路径被拒绝的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆