2012-07-07 4 views
1

일부 웹 서버의 IIS 로그를 쿼리 할 수있는 .NET 응용 프로그램을 만들었습니다. 앱에서 WCF 서비스를 호출하여 데이터를 가져옵니다. WCF 서비스 위치에 IIS 로그가 있습니다. WCF 서비스는 IIS 로그 파일에서 Logparser를 내부적으로 호출하고 결과를 반환합니다. 여러 IIS 로그 파일이 있습니다. 한 번에 모두 logparser를 실행하면 약 30 개의 거대한 IIS 로그 파일이 쿼리되므로 반환하는 데 많은 시간이 걸립니다. 각 IIS 로그에서 logparser를 하나씩 실행하고 결과를 하나씩 반환하려고합니다.WCF 서비스에서 조각 데이터를 가져 오는 방법

WCF를 통해 작동하는 프레임 워크를 찾고 WCF 서비스에서 부분 데이터 검색을 허용합니다. 그래서 IISlogfile1, IISlogfile2 등의 결과를 얻고 싶습니다. 그렇지 않으면 UI가 한 번에 최대 결과를 얻기 위해 매우 오랜 시간 동안 기다려야합니다.

WCF 서비스의 데이터를 부분 검색 할 수있는 기존 프레임 워크에 대해 알고 있습니까?

추신 : 나는 모든 데이터가 전송된다고 응답 할 때까지 각 IIS 로그 파일에 대해 한 번씩 서비스를 여러 번 호출하는 방법을 사용합니다. 그러나 나는 더 깨끗한 해결책을 찾고있다. 이 도움이 아닌지 그러나이 방법으로 할 수 있다면

+0

저는 현재 WCF에서 스스로 교육하고 있습니다. 그렇기 때문에 클라이언트와의 연결을 피하기 위해 비동기 호출 방식을 만드는 방법은 무엇입니까? –

답변

0

This question은 시나리오와 매우 관련이있는 것으로 보입니다. Steven Cheng의 답변이 도움이되는지 확인해보십시오. 그의 대답의 요지는 서버가 각 로그 파일 처리를 완료 할 때 클라이언트를 호출 할 수있는 Duplex services을 시도 할 수 있다는 것입니다.

편집 :

는 또한 서버와 클라이언트 사이의 영구 연결을 설정 SignalR 프레임 워크에서 살펴보고, 그래서 하나의 처리를 완료대로 서버에서 (귀하의 경우 로그 파일에) 알림을 보낼 수 있습니다 . An example here.

0

잘 Souvik 바수,

나는 확실하지 않다.

먼저 파일 수를 얻기 위해 WCF 서비스를 호출하십시오.

내부 루프에서 파일 이름으로 WCF 서비스를 호출하고 gridview + jqgrid 또는 일부 비동기 적으로 마술을 호출하여 바인딩합니다.

이 방법을 사용하면 데이터를 비동기로 진행하고 표시 할 수 있으며 대기 시간도 줄어 듭니다. WCF 서비스도 적게로드됩니다.

희망 사항은 분명합니다.

+0

답장지가를 보내 주셔서 감사합니다. 현재 비동기식 서비스 호출을 사용 중이며 클라이언트의 루프에서 호출하고 있습니다. 그러나 이것은 매우 깨끗하지는 않으며이 동작을 허용 할 수있는 모든 inbuilt 프레임 워크를 찾고 있습니다. –

관련 문제