2013-06-06 4 views
1

관리자에게 전자 메일을 보내는 URL을 호출하여 클라이언트 데이터가 업데이트/전송되었음을 관리자에게 알리는 프로그램의 일부를 작성하려고합니다. 저는 Windows 7과 2003에서만 성공했습니다. Windows 서버 2008에서 실행해야합니다. URL이 호출되면 사용자로부터 웹 브라우저를 숨겨야합니다. 탐색기 창을 열어두면 이메일을 성공적으로 전송했지만 창을 숨기면 항상 실패합니다. 다음과 같이 내가 사용하고있는 코드는 다음과 같습니다C# URL 호출 : 제한 시간

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()에 대한 시간 초과 오류입니다.

어떤 조언이 도움이 될 것입니다. 사전에 감사합니다.

+2

그것은 당신의 윈도우 서버 2008 시스템이 연결을 허용하지 않는 제한적인 방화벽 뒤에있는 것을 나에게 같은 소리. 코드에서 그 일을 할 수있는 방법이 없으면 네트워크 관리자에게 연결을 허용해야합니다. – driis

+0

또한 Server 2008의 ProcessStartInfo 클래스에 대한 제한된 지원이있는 것처럼 보입니다. doc 페이지 [here] (http://msdn.microsoft.com/en-us/library/system.diagnostics)를 확인합니다. processstartinfo.aspx) 이러한 제한이 여기에도 적용되는지 확인하십시오. –

+0

기기의 브라우저에서 URL을로드 할 수 있습니까? – zimdanen

답변

0

과 같은 System.Net.Mail 네임 스페이스의 개체를 구성하고 직접 전자 메일을 보낼 수 있습니까? 이 솔루션은 겉보기에는 불필요하고 복잡한/실패하는 프로세스가 전자 메일을 보내는 것으로 소개합니다. 이는 프로그래밍 방식으로 수행하는 것은 매우 사소한 작업입니다.

SmtpClient MSDN Documentation

+0

아니요 API 호출이 항상 이메일을위한 것이 아니기 때문에 SmtpClient를 사용할 수 없습니다. 방금 테스트 목적으로 이메일을 사용하여 즉각적인 결과를 얻었습니다. – Penguins