【问题标题】:keep track of folder's activities跟踪文件夹的活动
【发布时间】:2011-03-07 23:12:10
【问题描述】:

我想监控“C:\Inetpub\ftproot\san”中所有文件夹的活动。用户可以处理任何类型的文件,而不仅仅是文本文件。因为我们提供了 1GB 空间(假设)给每个用户,所以用户可以做任何事情来利用这个空间。

现在我想监控用户将在其文件夹中执行的活动,例如创建新文件、删除现有文件或编辑文件。我想监控用户的活动,因为我必须跟踪分配给用户,所以我可以限制用户只使用 1GB 空间,不超过这个。 除了 FileSystemWatcher 之外,我还可以使用任何类,因为它仅适用于控制台应用程序而不适用于 Web 应用程序? 任何帮助都会非常感激.. 非常感谢

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    FileSystemWatcher 在 Web 应用程序中应该可以正常工作,但问题是 Web 应用程序并不总是开启。如果暂时没有人访问它,可以将其关闭以代替需要资源的其他事物,然后在下次访问时重新启动。当它自己的结构发生变化时(例如它的配置文件),它也可以很容易地重新启动。它是非常无状态和瞬态的。

    您打算如何在 Web 应用程序中使用这些信息?您的 Web 应用程序真的需要持续观察,还是只需要在请求时生成文件系统当前状态的报告?如果你真的需要前者,那么前面提到的 Web 应用程序如何在服务器上运行的性质会让事情变得有点不可靠。也许在 Web 服务器上运行的 Windows 服务更能胜任这项任务?

    【讨论】:

    • 网站是用户访问文件的唯一途径吗?也就是说,所有上传/删除/编辑/等。严格通过网站完成,从不直接在文件系统上或通过 FTP 或任何东西?如果是这样,那么您实际上不需要经常监控,只需在每次执行操作时检查它是否会违反限制,如果是,则返回错误。
    【解决方案2】:

    首先,我将其分解为:

    • 用户可以通过哪些方式修改文件夹的内容?
    • 您想通过 Web 界面完成/呈现给用户什么?

    一种稍微简单的方法(在某种意义上)是在机器上维护一个服务,该服务定期监视目录中您需要的信息(大小、文件数量等),并连接它(通过某些东西)像 WCF)到实际的 Web 应用程序。实际上,您将有一个半软限制,在一段时间内用户可以在超过 1GB 上运行,但显然您可以采取纠正措施,但这样您实际上不必监控每个操作每个用户实时。


    【讨论】:

    • 感谢您的回复。用户可以在他的空间中保存任何类型的文件,也可以编辑文本文件..他可以删除所有类型的文件。对于修改内容,他可以使用鼠标点击或击键。网络界面将有一个登录页面,用户将在其中输入他的 ID 和密码,当他按下登录按钮时,他将被重定向到仅包含他的文件夹的页面。在他的文件夹中,用户可以执行任何类型的文件操作。跨度>
    【解决方案3】:

    即兴发挥我认为您需要某种服务才能使用 FileSystemWatcher 类。使用 asp.net 真正监视目录的唯一方法是控制如何从目录中添加和删除所有文件。如果是这种情况,那么您可以添加代码以浏览目录并轻松添加其中所有内容的大小。

    如果他们可以使用其他应用程序(例如 FTP 客户端)将文件放入这些文件夹中,那么您将需要一项服务来监视这些文件夹。

    【讨论】:

    • 感谢 Jaltiere。是的,我的服务器在 FTP 上,用户将通过他的本地电脑通过 Internet 将文件上传到网站。我可以在 ASP.NET 中使用 FileSystemWatcher 吗?
    • 您可以尝试在 global.asax 文件的 Application_Start 事件中进行设置,但关键是确保您始终拥有至少 1 个活动会话。如果您有很多流量,这可能不是问题,但如果不是,您将需要提出某种保持活动的解决方案。
    【解决方案4】:

    这样做的更好方法是让您的 WebApp 作为门户运行,以了解正在发生的事情,但您需要运行 Windows 服务以确保有人不会超出空间分配。

    该服务还可以帮助向您的门户提供数据。

    请记住,网站只有在有人调用它时才会运行。因此,如果您 5 天不使用您的网站,则不会对其进行监控。

    当然,您可以将网页保持打开 X 天,但这有点过头了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多