面对问题与IIS 8和Windows Server 2012的Web应用程序写在asp.net C#MVC剃刀5我面临一个文件锁定(图像文件)的问题由IIS。 我有一个用户的个人资料页面,在这里我显示用户的个人资料照片。 我注意到,只要我只是显示在浏览器中的个人资料页,磁盘上的个人资料图片由IIS锁定。 轮廓图像是显示与如下所示的img标签(Model.ImagePath是一个字符串路径)
string ImageUrl = "";
if (Model.ImagePath == null || Model.ImagePath == "/AppContents/1/Speaker/")
{
ImageUrl = "http://" + HttpContext.Current.Request.Url.Authority + "/AppContents/1/avatar.png";}
else
{
ImageUrl = "http://" + HttpContext.Current.Request.Url.Authority + Model.ImagePath;
}
...
<section class="col col-5" style="padding: 0px 0px 0px 4px;">
<label class="label">Profile Picture <span class="">(120px X 120px)</span> </label>
<div class="editor-label">
<span>
<a onclick="return launchEditor_avatar('blah','@ImageUrl');" href="#">
<img id="blah" style="margin:10px;width: auto !important;height: auto !important;max-height: 85px; max-width: 120px;min-height: auto;min-width: 50px;" src="@ImageUrl" />
</a>
</span>
<span style="border: 1px initial #808080">@Html.CheckBoxFor(model => model.moderator) Is a Moderator
</span>
</section>
只要页面呈现在本地服务器上的个人资料图片被锁定。 这造成的问题监守从个人资料页面,用户可以编辑图像。 所以编辑的图像(使用舍高分辨率)是没有得到保存,因为它说““System.IO.IOException:该进程无法访问文件‘C:\用户\ web应用程序\ 73a.jpg’,因为它正由另一个进程使用“。
在我的本地Windows实例(窗口10,IIS 8),这个问题就出现,但后3〜4分钟,锁就会自动删除,文件被编辑后保存。 这让我觉得,这是一些配置问题。 请指导如果有一个人面临任何类似的问题。
我已经检查了sysinternal工具“handle.exe”,我看到它指向IIS工作进程。 有人可以请指导如何得到这个问题的解决
C:\Downloads\Handle>handle.exe C:\Users\webapp\73a.jpg
Nthandle v4.1 - Handle viewer
Copyright (C) 1997-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
w3wp.exe pid: 2720 type: File 794: C:\Users\webapp\73a.jpg
w3wp.exe pid: 2720 type: File A34: C:\Users\webapp\73a.jpg
w3wp.exe pid: 2720 type: File A9C: C:\Users\webapp\73a.jpg