C# Calling a URL: Timeout

本文关键字:Timeout URL Calling | 更新日期: 2023-09-27 18:17:28

我试图写一个程序的一部分,通知管理员,客户端数据已被更新/通过调用发送电子邮件给管理员的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服务器上工作,这是必须的。

每次到达应用程序中的这段代码时,程序开始不响应,最终恢复并说它已经发送了通知。但是,它会在应用程序中的此时冻结,并且永远不会发送电子邮件。我已经检查了这个URL,它在手动完成时发送电子邮件没有任何问题。如果这可能引起任何问题,我目前正在使用。net 4.0客户端包。我得到的唯一错误是超时错误与httpwebresponse getresponse();

任何建议都会非常有帮助。提前谢谢大家

C# Calling a URL: Timeout

您是否可以从System.Net.Mail命名空间(如SmtpClient)配置对象并直接自己发送电子邮件?该解决方案在发送电子邮件时引入了一个看似不必要且复杂/容易失败的过程,这是一个通过编程完成的相当微不足道的任务。

SmtpClient MSDN Documentation