比如我写了一个最简单的WebMethod(代码如下),然后写了一个客户端去调用这个函数。
[WebMethod]
publicstringHelloWorld()
{
File.Create("d:\\1.txt");
return"HelloWorld";
}
调用代码:
localhost.Service1SoapClientb=newlocalhost.Service1SoapClient();
b.HelloWorld());
b.Close();
当调用结束后,d:\1.txt生成成功。这个时候我想把这个1.txt删除掉,但提示我该文件被w3wp.exe占用。想请问下这个AppPool进程在这种情况下多少时间会被销毁。w3wp.exe的生存周期是怎样的。谢谢
------解决方案--------------------
你的问题不是w3wp多久后会销毁,而是文件句柄没有释放。
------解决方案--------------------
publicstaticFileStreamCreate(
stringpath
)
这个函数返回了一个FileStream你要关闭它。或者用using,会自动关闭
using(FileStreamfs=File.Create(path))
{
Byte[]info=newUTF8Encoding(true).GetBytes("Thisissometextinthefile.");
//Addsomeinformationtothefile.
fs.Write(info,0,info.Length);
}
代码来自msdn
http://msdn.microsoft.com/en-us/library/d62kzs03.aspx