Asp.net 调用网页的Windows服务

Asp.net 调用网页的Windows服务,asp.net,windows-services,Asp.net,Windows Services,我想我不了解asp或windows服务的工作原理 我正在尝试为我的asp.net项目创建计划报告。我现在在本地机器上运行windows服务,稍后它将在专用服务器上运行。它应该每隔几分钟请求一个ASP页面,当被请求时,该网页当前会在页面加载时向我发送电子邮件。下面是我在windows服务中用来调用网页的代码 HttpWebRequest request= (HttpWebRequest)WebRequest.Create(address); request.Method = "GET"; resp

我想我不了解asp或windows服务的工作原理

我正在尝试为我的asp.net项目创建计划报告。我现在在本地机器上运行windows服务,稍后它将在专用服务器上运行。它应该每隔几分钟请求一个ASP页面,当被请求时,该网页当前会在页面加载时向我发送电子邮件。下面是我在windows服务中用来调用网页的代码

HttpWebRequest request= (HttpWebRequest)WebRequest.Create(address);
request.Method = "GET";
response = request.GetResponse();
reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
result = reader.ReadToEnd();
我知道它走到了这一步,因为我也一直在让服务人员在每一步都给我发电子邮件。但是,当服务请求该页面时,该web页面不会执行任何操作。如果我将asp页面的地址粘贴到浏览器中,那么我会从该页面收到一封电子邮件。ASP.NET网站在我的计算机上以VS调试模式运行。服务是否必须先打开浏览器

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

您(几乎)无法从windows服务打开浏览器,而且这样做是错误的。
您可以将电子邮件发送移动到服务吗?

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

//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
还是那样


你调用过myReq.GetResponse()吗?我添加了一些代码,我没有…但现在我是。同样的交易。尝试在您的页面上创建一个新方法来发送电子邮件,并用[WebMethod]装饰它,然后调用
../
抱歉,我不明白。我想是我误解了-使用[WebMethod]将允许您明确地针对该方法,但您无法在Windows服务中显示某些内容。听起来你需要像JavaScript的
setInterval()
这样的东西才能每120000毫秒触发一次AJAX调用。嗯,电子邮件只是一些可见操作的占位符,我想运行一系列报告。你能发布你的asp代码吗?这可能是由IsPostBack验证引起的吗?因为每个httprequest都是新的。页面加载(不是回发)。那么,你是说它应该工作吗?不过,我的页面上没有回发检查。它可以正常工作。如果你把断点放在页面加载中,你会停在那里吗?我决定把日程安排留在web应用上,让windows服务完成所有的艰苦工作。这对我来说是一个简单、直接的解决方案。