如何写入网站上的日志文件

时间:2015-02-23 21:13:10

标签: asp.net vb.net logfiles

我记录操作以证明特定用户已执行某些任务。写入日志文件在开发空间中工作(写入我的PC上的C:\ CPLogfile \),但是一旦我发布解决方案,我就会收到以下错误:

  应用程序中的服务器错误

我的代码:

Public Sub LogAction(WhoIsThis As String, MessageToLog As String)

    Dim ThisPath As String = HttpContext.Current.Request.Url.Host
    Dim LogfileName As String = "logAction" & Format(Now(), "yyyyMMdd") & ".txt"
    If InStr(ThisPath, "localhost") > 0 Then '----- Local machine
        LogfileName = "C:\CPLogfile\" & LogfileName
        If Not Directory.Exists("C:\CPLogfile") Then
            Directory.CreateDirectory("C:\CPLogfile\")
        End If
    Else
        LogfileName = ThisPath & "logAction" & Format(Now(), "yyyyMMdd") & ".txt"
    End If
    Using w As StreamWriter = File.AppendText(LogfileName)
        w.Write("{0} {1}", DateTime.Now.ToLongTimeString(), DateTime.Now.ToLongDateString())
        w.WriteLine(", User: " & WhoIsThis)
        w.WriteLine("  :{0}", MessageToLog)
        w.WriteLine("-------------------------------")
    End Using
End Sub

1 个答案:

答案 0 :(得分:0)

默认情况下,您无法在IIS目录之外工作的主要原因是安全问题。它阻止了横向攻击等事情。您可以在开发计算机上使用的原因很可能是您没有使用完整的IIS产品。当您移动到IIS时,您将受到限制。

您有几个选择:

  1. 说服人们让您关闭IIS中的功能并在服务器中打开安全漏洞
  2. 改为登录数据库
  3. 创建一个WCF服务,该服务写入日志文件并进行设置,使其不使用IIS
  4. 还有其他选择,但这三种最简单。最简单的是1号,因为它是IIS中的一个设置。我也不会推荐这个解决方案。

相关问题