日期:2014-05-20  浏览次数:20375 次

该进程无法访问文件“c:\inetpub\wwwroot\SMSTEST\send20070124175026.txt”,因为该文件正由另一进程使用。
行   79:   string   str=GetMaxID( " ", "TbSendMessage ");
行   80:   string   random= "dg "+ "0000000000000000 ".Substring(0, "0000000000000000 ".Length-str.Length)+str;
行   81:   StreamWriter   sw   =   new   StreamWriter(path,true,Encoding.GetEncoding( "gb2312 "));
行   82:   sw.WriteLine( " <serialno> "+random+ " </serialno> <sendport> "+config+ " </sendport> "+
行   83:   " <mobileno> "+fmobile+ " </mobileno> <content> "+contect+ " </content> "+


错误81行

代码如下:
using(StreamWriter   sw=new   StreamWriter(path))
{

try
{
sw.Write( " <serialno> "+random+ " </serialno> <sendport> "+config+ " </sendport> "+
" <mobileno> "+fmobile+ " </mobileno> <content> "+contect+ " </content> "+
" <mesgtype> 1 </mesgtype> <apptype> 2 </apptype> <srr> 1 </srr> end ");
sw.Close();
}
catch
{
sw.Close();
}
finally
{
sw.Close();
}
}



------解决方案--------------------
把w3wp进程先终止掉再访问看看还有这个问题么
------解决方案--------------------
你根本不用写“sw.Close();”,using{}结构结束的时候sw释放时会自动将其flush和close,你画蛇添足反而一看就是心理没有搞清楚那个using{}是什么。

至于你贴的两段代码是什么关系,你想说明什么,我不太看的懂。

如果这两段是在两个线程中的,那么完全可以发生冲突。

发生这个是平常事。我不知道你把它摊开来想说什么。当你去商店买货,如果你想买的苹果最后一斤恰好被前边一个人买走了,你赶紧大声叫售货员过来补货或者采取其他措施就可以了,摊开手大哭傻在那里没有任何用。