将aspx.cs后面的代码转换成可执行文件

Convert aspx.cs code behind into an executable file

我是一名初级开发人员,我有一个情况,以前的开发人员写了一个 aspx 页面,用 guid 命名,以免被用户意外访问。它的功能是调用存储过程来获取收件人列表,并填充一个DataTable。然后使用 NPOI.dll 将 dt 导出到 excel 工作簿并将其通过电子邮件发送到收件人列表。前端没有控件,都是在页面加载时触发的。通过将此页面设置为服务器浏览器上的默认页面,并在服务器上设置作业以启动浏览器,每周调用一次此页面。所有这一切实际上在很长一段时间内都运行良好,但是,现在客户想要从站点中删除该页面并使用替代方法来生成和发送每周报告。这是我的问题。我能否将此代码隐藏编译为可由服务器作业调用的 .exe 应用程序?还是有更好的方法来解决这个问题?任何建议and/or指导将不胜感激!我已经搜索过但没有找到相关讨论。

您必须创建一个单独的控制台应用程序并手动移动代码。它将涉及 copy/paste 代码,从代码隐藏到您的控制台应用程序。控制台应用程序完成后,您可以通过操作系统计划任务将应用程序安排为每周 运行。


作为起点,将代码从 Page_Load 方法复制到控制台应用程序中的 Main 方法,您还需要添加所需 dll 的引用,例如 NPOI.dll。一旦您能够成功编译您的控制台应用程序,您就可以通过发送一些测试电子邮件来测试它。该控制台应用程序将为您提供一个可执行文件,您可以安排在机器上每周执行一次。

参见:Schedule a task

我会将逻辑隔离在可以从 Web 或 WinForms 调用的 class 库中,因为它所做的只是从 table 中读取数据创建 excel文件,然后通过电子邮件发送。这样,如果客户需要更多方法来生成 Excel 工作簿,逻辑就会被隔离并准备好在其他地方使用。