我正在尝试编写程序的一部分,该程序通过调用向管理员发送电子邮件的 URL 来通知管理员客户端数据已更新/发送。我已经成功地做到了这一点,但只在 Windows 7 和 2003 上。我需要它在 Windows server 2008 上运行。它还需要在调用 url 时向用户隐藏 Web 浏览器。如果我让资源管理器窗口打开,我已经成功发送电子邮件,但如果我尝试隐藏窗口,它总是失败。我正在使用的代码如下:
HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(url += strNewValue);
// execute the request
HttpWebResponse response = (HttpWebResponse)wr.GetResponse();
Stream resStream = response.GetResponseStream();
response.Close();
/*
WebBrowser web = new WebBrowser();
web.AllowNavigation = true;
web.Visible = false;
web.Navigate(url+strNewValue);
*/
/*
ProcessStartInfo startweb = new ProcessStartInfo(url + strNewValue);
startweb.RedirectStandardOutput = false;
startweb.WindowStyle = ProcessWindowStyle.Hidden;
startweb.UseShellExecute = true;
startweb.CreateNoWindow = true;
Process.Start(startweb);
*/
注释代码显示了我试图使其工作的其他尝试。这段代码似乎都可以在 Windows 2007 和 Windows Server 2003 上成功运行,但我无法让它在必须的 Windows 2008 Server 上运行。
每次到达应用程序中的这一部分代码时,程序都会开始不响应,最终恢复并说它已经发送了通知。但是,它会在应用程序中冻结,并且永远不会发送电子邮件。我已经检查了这个 URL,它在手动完成时发送电子邮件没有任何问题。如果这可能导致任何问题,我目前正在使用 .NET 4.0 客户端包。我得到的唯一错误是 httpwebresponse getresponse() 的超时错误;
任何建议都会非常有帮助。先感谢您