IIS中的日志文件与ASP.NET Web服务中的自定义日志文件不匹配

IIS中的日志文件与ASP.NET Web服务中的自定义日志文件不匹配,asp.net,vb.net,web-services,logging,Asp.net,Vb.net,Web Services,Logging,我有个问题 当有人调用我的webservice时,这会记录到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

我有个问题

当有人调用我的webservice时,这会记录到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日志是空的,而我的应用程序却从本地网络记录了一些东西?当时,我的局域网上没有At发送该请求。没有人在家,我们也没有无线网络。我是否有未经授权的入侵

如果你们能帮我回答我的问题,那就太棒了


您好。

根据日志文件,似乎IIS可能在那个时候被重置(可能是系统重新启动、有人执行iisreset、应用程序池定期刷新等)


最可能的解释是,您的数据层中有代码,这些代码是在启动调用
CheckForUpdate
方法的IIS时执行的,这就是为什么IIS日志中没有任何内容。

当有人执行IIS重置时,所有未刷新的日志都会刷新到日志文件中,而没有人执行IIS重置。到服务器的唯一转发端口是端口80。服务器被破坏了吗?在我看来,IIS在16:04:22和16:29:02之间发生了一些事情,因为在这段时间内,一个新的头被写入了日志文件。可能是有人关闭了IIS登录,然后稍后又重新打开,这表明存在漏洞。如果在应用程序启动代码的任何地方都没有调用CheckForUpdate,那么我怀疑这可能就是发生的事情。好的,谢谢。现在最好的做法是什么?好吧,我认为你应该从更改所有密码开始,禁用所有不必要的帐户,检查安全日志以了解注销和登录活动。