我发现了许多类似的问题,但我无法解决这个问题,因此张贴了一个新的。
我开发了具有登录/注册功能的dotnet核心web应用程序。在编辑配置文件部分,有一个功能,用户可以更新他的配置文件图片。这在当地很管用。当我将它部署到服务器上时,我会得到下面提到的错误。
供您参考的代码
private Dictionary<string, string> UploadProfilePic(EditUserProfilePicViewModel model)
{
string uniqueFileName = null;
Dictionary<string, string> imageNamesMap = new Dictionary<string, string>();
string contentRoot = config.GetValue<string>(WebHostDefaults.ContentRootKey);
string tempFolder = contentRoot + "\\wwwroot\\images\\temp";
string uploadFolder = contentRoot + "\\wwwroot\\images\\profilepics";
if (model.ProfileImage != null)
{
try
{
string[] fileNameArray = model.ProfileImage.FileName.ToString().Split('.');
string fileExtension = fileNameArray[fileNameArray.Length - 1];
uniqueFileName = model.ProfileId.ToString() + '-' + model.ProfileUrl + "." + fileExtension;
//store image in the temp folder
string filePath = Path.Combine(tempFolder, uniqueFileName);
using (var fileStream = new FileStream(filePath, FileMode.Create))
{
model.ProfileImage.CopyTo(fileStream);
}
using (Image sourceImage = Image.FromFile(filePath))
{
if (sourceImage != null)
{
try
{
//resize to 300px and store in profilepics folder
using (Image destinationImage = ResizeImage(sourceImage, 300, 300))
{
uniqueFileName = model.ProfileId.ToString() + '-' + model.ProfileUrl + "-300." + fileExtension;
imageNamesMap.Add("LargeImage", uniqueFileName);
string fileSavePath = Path.Combine(uploadFolder, uniqueFileName);
destinationImage.Save(fileSavePath, ImageFormat.Jpeg);
}
//resize to 75px and store in profilepics folder
using (Image destinationImage = ResizeImage(sourceImage, 75, 75))
{
uniqueFileName = model.ProfileId.ToString() + '-' + model.ProfileUrl + "-75." + fileExtension;
imageNamesMap.Add("SmallImage", uniqueFileName);
string fileSavePath = Path.Combine(uploadFolder, uniqueFileName);
destinationImage.Save(fileSavePath, ImageFormat.Jpeg);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
DeleteFilesFromDir(tempFolder);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
return imageNamesMap;
}
你能帮我拿这个吗?
该错误表示应用程序在服务器上运行时使用的用户帐户没有访问所述路径的权限(您可以使用特权帐户登录服务器并启动应用程序以确认这一点)。任何应用程序都是从特定用户帐户运行的系统进程,这可能是一个真实的本地服务器帐户(servername\user),Active Directory帐户(directoryname\user)或某个虚拟帐户。如果您使用IIS在服务器上托管应用程序,那么它很可能会使用虚拟IIS帐户来启动应用程序进程(IIS AppPool