Windows服务调用网页

时间:2013-03-25 21:10:04

标签: asp.net windows-services

我认为我不了解asp或Windows服务的工作原理。

我正在尝试在我的asp.net项目上创建预定报告。我现在在本地计算机上运行了一个Windows服务,稍后它将在专用服务器上运行。它应该每隔几分钟请求一个ASP页面,并在被请求时,网页当前通过page_load向我发送电子邮件。这是我在Windows服务中用来调用网页的代码。

HttpWebRequest request= (HttpWebRequest)WebRequest.Create(address);
request.Method = "GET";
response = request.GetResponse();
reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
result = reader.ReadToEnd();

我知道它已经走到了这一步,因为我一直在为我提供服务,每一步都给我发电子邮件。但是,当服务请求页面时,网页不执行任何操作。如果我将asp页面的地址粘贴到我的浏览器中,那么我会从该页面收到一封电子邮件。 ASP.NET网站在我的计算机上以VS调试模式运行。该服务是否必须首先打开浏览器?

如果页面需要浏览器才能运行,我是否可以在我的asp项目中运行代码而无需定期打开浏览器?

2 个答案:

答案 0 :(得分:1)

您(几乎)无法从Windows打开浏览器服务,这样做也是错误的。 你能把你的电子邮件发送到服务吗?

答案 1 :(得分:1)

您只需使用任务计划程序调用您的网页

即可
//Create a new scheduled task to open a browser eg: internet explorer then right
//click properties, in the run window type in with the quotes an example
"C:\Program Files\Internet Explorer\iexplore.exe" "http://www.mywebsite.com/something/myactionpage.chtml" 
//If you want to open the page with another browser, just change the first path

或者像那样

Best Timer for using in a Windows service