ASP.NET:System.UnauthorizedAccessException - 访问路径被拒绝 [英] ASP.NET: System.UnauthorizedAccessException - Access to Path Denied
问题描述
我有一个ASP.NET Web应用程序,执行以下操作:
- 读取一个Excel文件。
- excel文件将有一个位于其中的图像URL指向互联网上的某个地方。
- 程序读取每个图像URL并将其存储到网络中的临时文件夹中服务器。
- 然后应用程序调整图像的大小(更改宽度和高度)。
-
最后,应用程序将保存该图像
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:
- Reads an Excel file.
- The excel file will have an image URL located in it that points to somewhere on the internet.
- The program reads each image URL and store it into a temporary folder in the web server.
- The application then resizes (changes the width and height) of the image.
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屋!