我有一个问题。
当有人调用我的web服务时,会将其记录到IIS日志文件中,并且我还会将请求(在处理完之后)记录到自定义日志文件中以进行统计。
我使用以下函数登录文件:
Public Sub Log(ByVal Message As String, ByVal Level As LogEntryLevel, ByVal Additional As Boolean)
Dim base As String = "C:\SERVER\log\"
Dim fileName As String = Date.Now.ToString("dd-MM-yyyy") & ".log"
Dim newString As String = ""
If Not Additional Then
If System.IO.File.Exists(base + fileName) Then newString &= vbNewLine
newString &= Date.Now.ToString("[dd/MM/yyyy HH:mm:ss.fff ") & Level.ToString & "] " & Message
Else
newString &= Message
End If
My.Computer.FileSystem.WriteAllText(base + fileName, newString, True)
End Sub
我使用以下函数获取客户端IP地址:
Public Function getIP() As String
Dim ip As String
ip = Context.Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If ip = String.Empty Then
ip = Context.Request.ServerVariables("REMOTE_ADDR")
End If
Return ip
End Function
昨天下午4点,这个记录了:
[18-03-2012 16:08:20.282 INFO] Client 192.168.1.1 invoked CheckForUpdate with []
[18-03-2012 16:08:20.485 SEVERE] FATAL EXCEPTION WHILE PROCESSING REQUEST:
IP : 192.168.1.1
Source : mscorlib
Method : Parse
Type : System.ArgumentNullException
Error Message : Waarde kan niet null zijn.
Parameternaam: input
Stack Trace : bij System.Version.Parse(String input)
bij System.Version..ctor(String version)
bij DataLayer.Service.CheckForUpdate(String ver) in File1:regel 79
-------------------------END ERROR REPORT-------------------------
[18-03-2012 16:08:20.516 INFO] Client 192.168.1.1 invoked CheckForUpdate with []
[18-03-2012 16:11:01.165 INFO] Client 192.168.1.1 invoked CheckForUpdate with []
[18-03-2012 16:11:01.165 SEVERE] FATAL EXCEPTION WHILE PROCESSING REQUEST:
IP : 192.168.1.1
Source : mscorlib
Method : Parse
Type : System.ArgumentNullException
Error Message : Waarde kan niet null zijn.
Parameternaam: input
Stack Trace : bij System.Version.Parse(String input)
bij System.Version..ctor(String version)
bij DataLayer.Service.CheckForUpdate(String ver) in File1:regel 79
-------------------------END ERROR REPORT-------------------------
[18-03-2012 16:11:01.165 INFO] Client 192.168.1.1 invoked CheckForUpdate with []
然而,IIS日志在那段时间内完全是空的:
#Software: Microsoft Internet Information Services 7.5
#Version: 1.0
#Date: 2012-03-18 15:33:33
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User- Agent) sc-status sc-substatus sc-win32-status time-taken
2012-03-18 15:33:33 192.168.1.250 POST /Service.asmx - 80 - x.252.x.210 - 200 0 0 2761
2012-03-18 15:34:05 192.168.1.250 POST /Service.asmx - 80 - x.180.x.226 - 200 0 0 358
2012-03-18 15:39:29 192.168.1.250 POST /Service.asmx - 80 - x.166.x.235 - 200 0 0 390
2012-03-18 15:39:57 192.168.1.250 POST /Service.asmx - 80 - x.18.x.149 - 200 0 0 405
2012-03-18 15:44:20 192.168.1.250 POST /Service.asmx - 80 - x.4.x.113 - 200 0 0 343
2012-03-18 15:44:45 192.168.1.250 GET /Rejected-By-UrlScan ~/ 80 - x.192.x.18 - 404 0 64 218
2012-03-18 15:49:34 192.168.1.250 POST /Service.asmx - 80 - x.219.x.45 - 200 0 0 374
2012-03-18 15:52:52 192.168.1.250 POST /Service.asmx - 80 - x.59.x.202 - 200 0 0 312
2012-03-18 16:04:22 192.168.1.250 POST /Service.asmx - 80 - x.59.x.202 - 200 0 0 312
#Software: Microsoft Internet Information Services 7.5
#Version: 1.0
#Date: 2012-03-18 16:29:02
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User- Agent) sc-status sc-substatus sc-win32-status time-taken
2012-03-18 16:29:02 192.168.1.250 POST /Service.asmx - 80 - x.170.x.194 - 200 0 0 1310
2012-03-18 16:37:54 192.168.1.250 POST /Service.asmx - 80 - x.222.x.11 - 200 0 0 343
2012-03-18 16:39:09 192.168.1.250 POST /Service.asmx - 80 - x.243.x.193 - 200 0 0 327
2012-03-18 16:53:31 192.168.1.250 POST /Service.asmx - 80 - x.131.x.104 - 200 0 0 249
如何将IIS日志清空,但我的应用程序是否从本地网络记录了一些内容?当时,我的局域网没有发送该请求。没有人在家,我们没有无线网络。我是否有未经授权的入侵?
如果你们为我回答我的问题,那真是太棒了!
问候。
答案 0 :(得分:0)
根据日志文件,看起来IIS可能已经被重置(可能是系统重启,有人做iisreset,应用程序池定期重新启动等)。
最可能的解释是,您的DataLayer中的代码在IIS启动时执行,调用CheckForUpdate
方法,这就是IIS日志中没有任何内容的原因。