2010-11-19 2 views
6

은 15 분마다 URL을 핑 (ping)하고 서버로부터 응답을 얻을 수있는 방법이 있습니까?C# 웹 사이트를 핑 (ping)합니까? (keep-alive service)

.net은 asp.net 웹 사이트에서 응용 프로그램이 시작될 때 첫 번째 사용자가로드 패널티가 발생하지 않도록 다시 빌드를 호출하는 간단한 도구를 작성하는 데 사용할 수 있는지 확인하려고합니다.

누구나 같은 목표를 달성 할 수있는 대체 방법이 있다면 ... 생각? 팁? 아이디어?

답변

9

일반적으로 출시를 추진하는 사람은 시험용으로 사이트를 업로드 한 후에 방문해야합니다 (폭격 할 곳이 없는지 확인하십시오). 당신이 프로그래밍 방법을 찾는 경우에, WebClient

using (WebClient client = new WebClient()) 
{ 
    client.DownloadString("http://wwww.sitename.com/"); 
} 

는 그 다음 exe를하고 그것을 실행하는 윈도우 스케줄러를 사용하여 ... 도움이 될 수 있습니다. 이것을 WinService에 넣고 상태를 로그 파일에보고 할 수도 있습니다.

업데이트 : VS2012 지금 사이트가 처음 요청 될 밀어 사람들을하는 게시 후 페이지가 열립니다처럼

것 같습니다.

자주 방문하는 경우 (질문에서 언급 한 15 분마다) IIS/AppPool을 다시 구성하고주기 시간을 좀 더 길게 변경하는 것이 좋습니다. IIS는 사용되지 않는 리소스를 기본적으로 보존하므로 잠시 후에 사이트를 쿼리하지 않으면 실제로 다른 응용 프로그램이 사용할 메모리가 릴리스됩니다.

+0

"일반적으로 출시를 추진하는 사람은 사이트를 업로드 한 후 방문해야합니다."반드시해야 할 일! –

+1

@Greg B로드 밸런싱 환경에서 항상 그런 것은 아닙니다. 100 대의 서버를 가지고 있다면 어떨까요? –

+0

@ RobStevenson-Leggett 공정한 포인트. 로드 밸런서 또는 응용 프로그램에서 해당 규모로 상태 모니터링을 수행 할 것으로 기대합니다. –

3

HttpWebRequest를 만들고 Quartz.NET과 같은 것을 사용하여 일정을 예약 할 수 있습니다.

1

WebRequest을 발사 할 수 있습니다. 핑 (ping)은 웹 사이트를 재구성하지 못합니다.

1

내가 curl를 설치하고 당신이 원하는 것을 할 수있는 예약 된 작업을 사용하십시오.

나는 powershell과 함께 응용 프로그램 풀을 다시 시작했습니다.