【问题标题】:Can an ASP web app write to a log file on end user computerASP Web 应用程序可以写入最终用户计算机上的日志文件吗
【发布时间】:2013-07-04 08:48:28
【问题描述】:

好的,我知道这可能是一个非常基本的问题,但我更像是一个 winform 的人。

问题很简单。

如果我们将 System.IO 添加到 Web 表单。然后我们可以使用 StreamWriter 将日志文件写入最终用户计算机吗?

例如如果 page_Load 使用以下代码:

StreamWriter sr=New StreamWriter("C:\abc.log)

sr.Write("ABC")

那么这个 abc.log 文件是在哪里创建的呢?在网络服务器或最终用户上?如果在 websever 上,那么我们如何在最终用户机器上编写它?

我想在客户端机器上写一个日志文件。什么是选项?是否可以选择使用 cookie?

【问题讨论】:

  • 感谢您的回答。都有用。我现在为所有人投票!我想在客户端机器上写一个日志文件。什么是选项?使用 cookie 是一种选择吗?

标签: c# asp.net vb.net internet-explorer-6 client-side


【解决方案1】:

不 - 这不是网络的工作方式...... 您可以将日志显示为下载,这将是最干净的解决方案。

【讨论】:

  • 嗯,日志文件应该包含错误堆栈跟踪。我不确定下载对这里有什么帮助。
【解决方案2】:

正如该线程中的每个人都指出的那样:这根本不可能。现在,根据您尝试存储的内容,您可以利用 cookie 在用户计算机上存储一些信息,但这可能很麻烦,并且您只能使用 4K 的信息。话虽如此,HTML5 提供了新的 JavaScript 对象 localStorage 和 sessionStorage,它们基本上是一个键/值字典。我认为 localStorage 可能最适合您的需求,因为它会在浏览器关闭后将信息保留在用户 PC 上。例如:

 function logSomeData(message) {
       localStorage.logFile += message;
 }

 function showData() {
      alert(localStorage.logFile);
 }

如果您在浏览器中运行 logSomeData 函数,请关闭浏览器,然后返回并运行 showData() 函数,您添加到 logFile 的值将被保留。这不是一个新概念,这与今天的 cookie 完全相同,只是 localStorage 更易于使用(在我看来)并且它可以存储更多信息(2MB 到 10MB,具体取决于浏览器)。值得指出的是,这是一项新技术,因此像 IE7 这样的旧浏览器无法使用 localStorage。

如果您有任何其他问题,请告诉我!

【讨论】:

  • 使用 HTML 5 对我来说不是一个选项。在我目前的公司中,我仅限于 IE6 和 .Net FrameWrok 1.1 。所有的恐龙都老了。
  • 日志文件不会很大。我只想将当前错误写入其中。所以cookie是唯一的选择吗?
  • 在服务器上生成一个日志文件并将指向该文件的链接提供给最终用户,允许他下载并将其存储在他想要的位置;-)
【解决方案3】:

据我所知,您无法使用 asp.net 编写客户端文件。
在您的示例中,您正在编写托管应用程序的文件。

表示应用服务器的c:\abc.log

【讨论】:

    【解决方案4】:

    asp.net 中的所有代码都在服务器上运行,因此您发布的代码将写入服务器计算机。

    出于安全原因,浏览器不允许与本地计算机文件系统交互

    您可以使用其他一些技术(例如,网页中托管的 ActiveX 控件)

    【讨论】:

      【解决方案5】:

      为什么要在客户端站点上记录日志文件?

      如果您想在客户端站点上存储一些信息,请使用 cookie

      【讨论】:

        【解决方案6】:

        如果您坚持使用 Internet Explorer 6,则能够存储客户端数据的唯一解决方案是使用 userData Behavior。它可以让您存储多达 128kb。

        我建议你看看jStorage。即:

        一个跨浏览器的键值存储数据库,用于在本地存储数据 浏览器 - jStorage 支持所有主流浏览器,包括桌面(是 - 甚至 Internet Explorer 6) 和移动设备。

        它主要基于 HTML5 本地存储,但当 HTML5 不支持时,它会切换到任何可用的技术(如userData Behavior)。

        【讨论】:

          【解决方案7】:

          如果你刷新respose对象i,e(response.write)中的.txt文件,你可以将日志的文本文件下载到客户端机器

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-03-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-04-12
            • 1970-01-01
            • 1970-01-01
            • 2016-11-30
            相关资源
            最近更新 更多