2011-10-29 2 views
0

웹 서비스를 시작할 때 한 번만 코드를 실행하려고합니다. 나는 void Application_Start(object sender, EventArgs e)를 사용하는 것으로 생각하지만 난 내 코드웹 서비스에서 사용자 정의 코드 함수를 한 번만 수행하는 방법

`Request.ServerVariables["SERVER_SOFTWARE"];` 

에서하고 난 예외 Request is not available in this context 객체 아마 응용 프로그램은 단지 시작하고 요청을 처리하고 있지 becase 아직 존재하지 않는 것 같다 얻을.

이 문제를 어떻게 해결할 수 있습니까? 코드를 한 번만 실행할 수있는 방법.

답변

3

false으로 초기화 된 정적 부울 필드를 사용하여 함수가 호출되었는지 여부를 표시하고 호출 된 값을 true (함수 끝에서 가장 잘 수행 됨)으로 설정합니다.

값이 false 인 경우에만 함수에서 코드를 실행하십시오.

가능한 경쟁 조건을 피하기 위해 적절한 잠금을 사용하십시오 (감사합니다 Yahia).

+1

잠금이없는 경쟁 조건에 취약하지 않습니까? – Yahia

+0

@Yahia - 공정한 포인트. 적절한 잠금에 관한 정보를 추가했습니다. – Oded

관련 문제