Che*_*hev 4 .net c# asp.net io webforms
我正在使用带有C#的ASP.NET Webforms.在一个页面上,我单击"提交"以在服务器上创建文件.
File.Create(Server.MapPath(ConfigurationManager.AppSettings["LandingPages"])
+ landingPage.FriendlyName);
Run Code Online (Sandbox Code Playgroud)
这工作正常,并按预期创建文件.但是,在执行此操作后,它会重定向到另一个页面,该页面将读取刚刚创建的文件.
var landingPageContent
= File.ReadAllText(Server.MapPath(ConfigurationManager.AppSettings["LandingPages"])
+ landingPage.FriendlyName);
Run Code Online (Sandbox Code Playgroud)
那是我收到这个错误的时候.
该进程无法访问文件'c:\ code\Content\CMS\LandingPages\Test2',因为它正由另一个进程使用.
如果我重新启动IIS,那么进程会释放该文件,我可以加载该页面并正确读取该文件.File.Create为了在重定向之前关闭文件,我需要做些什么吗?
File.Create返回Filstream,试试这个:
using (FileStream fs = System.IO.File.Create(...)){}
Run Code Online (Sandbox Code Playgroud)
或更短:
File.Create(...).Dispose();
Run Code Online (Sandbox Code Playgroud)