无法打开IIS w3c log vb.net

时间:2014-02-24 06:57:45

标签: vb.net iis streamreader iis-logs

我一直在vb.net中编写一个应用程序,每隔几分钟就将一个IIS W3C日志文件的最后几行复制到一个用于远程报告的文件中。

  • 当我在我的本地PC上测试时,一切正常,但是当我在实时IIS服务器上尝试它时,它告诉我文件被另一个进程锁定,我认为IIS已将其锁定...
  • 它确实读取了一些站点的日志文件(超过服务器上的站点)而不是其他站点,告诉我已锁定/正在使用。
  • 为什么我总是可以在记事本中打开文件但不能在我的应用程序中打开它?

守则:

Dim linex = ""
Dim Line = ""

    '### IT ERROS OUT ON THE NEXT LINE ###
Using sr As New StreamReader("C:\inetpub\logs\LogFiles\W3SVC14\u_ex130702.log")

    Do Until sr.EndOfStream
        linex = sr.ReadLine()                
         line = line & linex & vbCrLf           
    Loop

End Using

1 个答案:

答案 0 :(得分:1)

创建基础FileStream时,您需要指定正确的共享选项和打开模式。由于没有传递所有必要参数的StreamReader构造函数,因此您需要先使用FileStream(String, FileMode, FileAccess, FileShare)构建FileStream,然后使用SrteamReader(Stream)在其上创建StreamReader。< / p>

我认为以下应该在IIS写入时打开IIS日志文件(如果没有 - 尝试其他标志组合)

Using stream As New  New FileStream( _
 "Test#@@#.dat", FileMode.Open, FileAccess.Read, FileShare.ReadWrite)
   Using sr As New StreamReader(stream)