65.9K
CodeProject 正在变化。 阅读更多。
Home

Utorrent 的 ASP.NET/AJAX 界面

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.36/5 (6投票s)

2008年1月8日

CPOL

5分钟阅读

viewsIcon

73224

downloadIcon

812

utorrent 应用程序的 ASP.NET/AJAX 界面。

引言

我最近发现 bittorrent 应用程序 µtorrent 包含一个 Web 界面。我最终将其运行起来,并认为它非常棒。我想自定义它,让它成为我自己的。于是,我在网上搜索,偶然发现了一组 C# 类,它们可以挂接到官方 µtorrent Web UI。原始帖子位于此处。在同一个帖子中,还有一篇关于使用 C# 类的 ASP.NET 界面的帖子。我测试了一下,并认为我可以构建自己的,克服它的一些怪癖。我还认为这将是对 AJAX 可能性的测试。

背景

运行起来应该相当直接。需要的是 IIS、.NET 3.5 和一个启用 Web UI 的较新版本的 µtorrent。如果您在运行站点时遇到问题,您可能还需要AJAX Control Toolkit。还有一个 Windows 服务,可以收集每个 torrent 的统计信息。

屏幕截图

Settings.PNG

图 1. 设置页面,在首次运行或配置中出现错误时显示。

Main.PNG

图 2. 显示的主页面。它包含一个列表框中的 torrent 类型列表、一个 GridView 中的 torrent、一个带有 formview 的选项卡控件用于常规信息,以及一个 GridView 列出文件。在此页面上有一个用于更改站点主题的 DropDownList、一个设置链接和一个查看日志的链接。此页面上还有一个部分,用于从 URL 或文件开始新的 torrent。

General.PNG

图 3. 从 torrent GridView 中单击“详细信息”链接后,“常规”选项卡将列出有关 torrent 的信息。

Files.PNG

图 4. 从 torrent GridView 中单击“详细信息”链接后,“文件”选项卡将列出 torrent 的文件及其状态。

Logs.PNG

图 5. 日志查看器将列出有关日志的所有信息。GridView 为每个字段提供一个 DropDownList,可用于过滤日志。

Stats.PNG

图 6. “统计信息”选项卡包含当前 torrent 统计信息的动态更新图。X 轴和 Y 轴由图形上方的两个 ListBox 选择。图形使用的是第三方图形实用程序SasqChart

Using the Code

要开始,请将文件复制到服务器的目录。确保该目录配置为应用程序。打开 Web 浏览器,将其指向您创建的目录的 URL。应用程序首次运行时,它会检测到设置无效,并提示您输入。完成后,单击“保存”按钮以提交更改。如果您想加密 web.config 中的信息,可以单击“设置”页面上的“链接按钮”。如果您单击它并完成确认,web.configappSettings 部分将被加密。

我决定使用此项目的 HTTP 压缩功能,希望能够加快速度。

我还添加了一个极其简单的 HttpModule 来处理安全性,因为我不想干扰或依赖 IIS 安全性。在共享托管环境中,您可能也无法轻松访问该功能。web.config 包含一个 accesslist 设置,它是一个逗号分隔的 string,包含可以访问站点的 IP 地址。如果不需要此功能,那么您只需删除 web.config 中的 SecurityHttpModule 条目,或者将“设置”页面上的条目留空。

我已更新本文,包括一个 Windows 服务,用于收集每个 torrent 的统计信息。服务的安装非常简单。该应用程序可以作为控制台应用程序运行,也可以作为 Windows 服务运行。我从这个 Code Project 文章中获得了这个想法。要作为控制台应用程序运行,请在不带任何参数的情况下运行应用程序。要作为服务运行应用程序,请使用 –service 参数运行它。要从系统中删除该服务,请使用 –removeservice 参数运行应用程序。

要安装,请将编译后的二进制文件和应用程序配置文件提取到目录中。根据需要设置应用程序配置文件。将应用程序安装为服务(运行一次并带 –service 参数)或设置任务计划程序任务以在不带任何参数的情况下执行应用程序。

最后一个选项需要考虑。通过将 web.config 中的 debug 设置为 false,可以大大提高站点的性能。这主要是由于 AJAX Control Toolkit 以及它发送到客户端的脚本有所不同。

仍然存在一些怪癖,但总的来说,它完成了任务;无论任务是什么!

特点

这是此项目的一些功能列表

  • 使用 AJAX 显示来自 µtorrent 的数据,提供一个可以通过大多数浏览器访问的简单 Web 界面。
  • 页面通过 UpdatePanels 由 AJAX Timer 控件更新。
  • GridView 支持在 Update Panel 中进行分页和排序。
  • 可以通过新文件或 URL 添加新的 torrent。
  • 使用 Update Progress Control 在左上角显示一个 正在加载... 动画。可以通过样式表或主题进行配置。
  • 我已将 Visual Studio 的所有自动格式化主题导入到 *.theme 文件中,以支持网站主题。
  • logviewer 包含一个 GridView,具有一个很棒的功能——过滤。每个列的唯一值显示在列标题的 DropDownList 中,可用于过滤 GridView 中的数据。
  • 创建了一个日志记录实用程序以方便日志记录。日志可以是制表符分隔的文本文件或 XML 文件。我包含了一个 XSLT 文件,用于将 XML 日志文件从基于元素转换为基于属性;一些控件(GridView 等)偏好基于属性,而另一些控件(TreeView)偏好基于元素。
  • 如果您想将日志数据绑定到其他控件类型,这将是必需的。
  • 创建了一个非常简单的安全实用程序,用于按 IP 地址过滤请求。
  • 创建了一种从数据表中获取列的唯一值的方法。
  • 每个 torrent 的历史统计数据。您可以按需选择 X 轴和 Y 轴。

关注点

目前还没有。欢迎评论和批评。

© . All rights reserved.