我是初级开发人员,我有一种情况,以前的开发人员写了一个用guid命名的aspx页面,以免被用户意外访问。它的功能是调用存储过程来获取收件人列表,并填充DataTable。然后使用NPOI.dll将dt导出到Excel工作簿并通过电子邮件发送到收件人列表。前端没有控件,它们都是在页面加载时触发的。通过将此页面设置为服务器浏览器上的默认页面,并在服务器上设置作业以启动浏览器,可以每周调用一次此页面。所有这些实际上都运行了很长一段时间,但是,现在客户端希望从站点中删除页面并使用备用方法生成并发送每周报告。这是我的问题。我可以将此代码隐藏编译为可由服务器作业调用的.exe应用程序吗?或者有更好的方法来解决这个问题吗?任何建议和/或指导都将不胜感激!我已经搜索过,找不到相关的讨论。
答案 0 :(得分:1)
您必须创建单独的控制台应用程序并手动移动代码。它将涉及从代码隐藏到您的控制台应用程序的复制/粘贴代码。完成控制台应用程序后,您可以安排应用程序每周通过操作系统计划任务运行。
作为起点,在控制台应用中将代码从Page_Load
方法复制到Main
方法,您还需要添加所需dll的引用,例如NPOI.dll
。一旦您能够成功编译您的控制台应用程序,您就可以通过发送一些测试电子邮件来测试它。该控制台应用程序将为您提供一个可执行文件,您可以在计算机上安排每周执行一次。
请参阅:Schedule a task
答案 1 :(得分:0)
我会隔离可以从Web或WinForms调用的类库中的逻辑,因为它所做的只是从创建excel文件的表中读取数据,然后通过电子邮件发送它。这样,如果客户想要更多方法来生成Excel工作簿,那么逻辑就会被隔离并准备好在其他地方使用。