ASP web应用程序可以写入最终用户计算机上的日志文件吗
本文关键字:计算机 用户 日志 文件 应用程序 web ASP | 更新日期: 2023-09-27 18:20:54
好吧,我知道这可能是一个非常基本的问题,但我更像是一个失败者。
问题很简单。
如果我们将System.IO添加到Web窗体。然后我们可以使用StreamWriter将日志文件写入最终用户计算机吗?
例如,如果page_Load使用以下代码:
StreamWriter sr=New StreamWriter("C:'abc.log)
sr.Write("ABC")
那么这个abc.log文件是在哪里创建的呢?在Web服务器上还是在最终用户上?如果在网络上,我们如何在最终用户机器上写它?
我想在客户端机器上写一个日志文件。有哪些选择?使用cookie是一种选择吗?
否-这不是网络的工作方式。。。您可以下载日志,这将是最干净的解决方案。
正如本线程中的每个人所指出的:这根本不可能。现在,根据您试图存储的内容,您可以利用cookie在用户计算机上存储一些信息,但这可能会很麻烦,并且您的信息限制为4K。也就是说,HTML5提供了新的JavaScript对象localStorage和sessionStorage,它们基本上是一个键/值字典。localStorage可能最适合你的需求,因为它会在浏览器关闭后将信息保存在用户电脑上。例如:
function logSomeData(message) {
localStorage.logFile += message;
}
function showData() {
alert(localStorage.logFile);
}
如果在浏览器中运行logSomeData函数,请关闭浏览器,然后返回并运行showData()函数,则添加到logFile的值将被持久化。这并不是一个新概念,这正是cookie今天所做的事情,只是localStorage更容易使用(在我看来),它可以存储更多的信息(2MB到10MB取决于浏览器)。值得指出的是,这是一项新技术,因此像IE7这样的旧浏览器无法使用localStorage。
如果你还有其他问题,请告诉我!
据我所知,您无法使用asp.net编写客户端文件。
在您的示例中,您正在编写承载应用程序的文件。
表示应用程序服务器的c:''abc.log
asp.net中的所有代码都在服务器上运行,因此您发布的代码将写入服务器机器。
出于安全原因,浏览器不允许与本地机器文件系统进行交互
您可以使用一些其他技术(例如,网页中托管的ActiveX控件)
为什么要在客户端站点上创建日志文件?
如果您想在客户端网站上存储一些信息,请使用cookie
如果您一直使用InternetExplorer6,那么能够存储客户端数据的唯一解决方案就是使用userDataBehavior。它很好地让你存储高达128kb。
我建议您看看jStorage。即:
跨浏览器键值存储数据库,用于将数据本地存储在browser-jStorage支持所有主要的浏览器,都在桌面上(是-甚至Internet Explorer 6)和移动设备中。
它主要基于HTML5本地存储,但当HTML5不受支持时,它会切换到任何可用的技术(如userData Behavior
)。
如果刷新respose对象i,e(response.write)中的.txt文件,则可以将日志的文本文件下载到客户端机器