任何人都可以向我发送有关此问题的解决方案。在这里,我想发送自动生成并附加到邮件的水晶报告。这里的报告可以通过asp .net和c#Lang自动生成。给我发送解决方案。
答案 0 :(得分:2)
我同意上述建议使用预定任务(控制台应用程序),但是没有人提到你不能安排在没有基本调度HTTP请求的外部实用程序的情况下按照这样的计划执行网页。更不用说需要每月执行的报告通常无法在有限(默认)响应超时之前完成执行。这是一个坏主意。但是,为了回答这个问题,我会说你可以编写一个简单的VBS或C#(。NET)控制台应用程序来为你的网络服务器创建一个HttpRequest并将结果发送到一个电子邮件中。然后将该控制台应用程序添加到Windows任务计划程序以每月执行一次。现在您的ASP.NET应用程序正在发送每月电子邮件。不要忘记您的C#控制台应用程序需要处理登录和身份验证(如有必要)。
替代方法是(不可靠)在调用HttpApplication.Init方法时在global.asa(应用程序范围)内创建计时器(后台进程)。这是不可靠的原因是Application对象可以随时回收,如果一段时间内没有向该应用程序发出请求,甚至可能无法运行。此外,如果您具有Web场环境,则每个服务器(以及Web园场景中的每个服务器进程)都会运行其自己的HtppApplication对象实例。它们甚至可能在同一个处理空间内重叠,而其中一个正在被垃圾收集。
答案 1 :(得分:1)
您可以使用以下任何一项:
1. set "windows task scheduler" to schedule an .vbs file that triggers an "asp.net page or webservice" to run and do your logic once in a month (Recommended).
2. Create a "windows service" project and set a timer within its onstart event.(windows service creation only available in professional/Ultimate versions of visual studio, but editing and compilation can be done in other versions)
请参阅创建调用asp.net页面/ Web服务的.vbs文件的步骤
打开记事本并将以下代码复制并保存
'Declare variables
Dim objRequest
Dim URL
Set objRequest = CreateObject("Microsoft.XMLHTTP")
'Put together the URL link appending the Variables.
URL = "http://computerName/VirtualDirectoryName/Logic.aspx"
'Open the HTTP request and pass the URL to the objRequest object
objRequest.open "POST", URL , false
'Send the HTML Request
objRequest.Send
'Set the object to nothing
Set objRequest = Nothing
将扩展名从“.txt”更改为“.vbs”
在Windows“任务计划程序”中创建一个新计划并指向新创建的sample.vbs文件,该文件将调用您的逻辑所在的页面(http://computerName/VirtualDirectoryName/Logic.aspx)并编辑一个月内运行一次的设置。
答案 2 :(得分:0)
每月生成自动使用 Windows服务