2011-02-23 3 views
0

약간의 배경 ... 서비스와 편도를 교환하는 .NET 웹 페이지가 있습니다. (OnCustomCommand() 사용) 사용자가 버튼을 누르면 함수가 호출됩니다. 모두 훌륭하고 멋쟁이 다. 그러나 함수가 실행되면 .NET 웹 페이지에 메시지, 함수 호출 또는 일부 통신을 보낼 수 있어야한다.ASP.NET 통신 서비스

내 서비스가 기능을 호출하거나 메시지를 보내거나 .Net 웹 페이지를 업데이트 할 수있는 방법이 있습니까?

저는 주로 .NET -> Service를 둘러 보았지만 다른 방법은없는 것 같습니다.

EDIT : Windows 서비스이며 ASP 페이지와 WindowsService는 동일한 서버에 있습니다.

+0

서비스 - Windows 서비스 또는 웹 서비스? –

+0

"내 .NET 웹 페이지 업데이트"라고 할 때? 서버 측 ASP.NET 코드를 트리거하거나 사용자 측 브라우저가 업데이트를 표시하도록 하시겠습니까? – tenor

+0

어느 쪽이든 아니면 ... 서비스가 끝나면 본질적으로 서비스가 완료되었음을 사용자에게 알리고 싶습니다. – TxAg

답변

1

서비스가 공유 파일이나 데이터베이스와 같은 공통 영역에 출력을 쓰게하십시오. 그런 다음 웹 페이지를 새로 고치고 해당 파일에 응답 출력을 쿼리하십시오.

두 명 이상의 사용자를 지원하려면 출력이 저장되는 위치를 결정하는 데 사용할 세션 ID가 있어야합니다.

Echo This is a test > c:\Some Directory\Session12345.txt 

을 다음 aspx 페이지 질의를하고있는 파일에 액세스 할 수 ASP가 사용에서이 http://example.com/GetOutput.aspx?Session=12345

같은 GET을 사용하여 새로 고침 예를 들어, 다음과 같은 GUID으로 명령 줄 매개 변수를 호출 추가 된 SessionID URL에.

필요에 따라 JQuery 및 WCF와 함께 작동하도록이 개념을 확장 할 수 있습니다. 물론 MITM 공격을 막으려면 보안을 강화해야합니다. 그러나 이것이 인터넷에 연결되지 않은 작은 프로젝트 인 것처럼 들리므로 추가 기능이 그다지 중요하지 않을 수 있습니다.

+0

좋습니다. 이렇게하면 페이지를 실시간으로 업데이트 할 수 있습니까? 사용자가 창을 열어 둔 상태에서 서비스가 완료되면 ...이 업데이트가 갑자기 업데이트됩니까? 또는 나는 업데이트를 얻기 위해 매번 쿼리해야 할 것인가? – TxAg

+0

그리고 네, 제가 작업하고있는 작은 내부 프로젝트입니다. 로컬 네트워크에서 바로 액세스 할 수 있습니다. – TxAg

+0

예 출력을 얻으려면 폴링해야합니다. 예를 들어,'sessionDone12345.txt'라는 파일에 쓸 수 있고, 존재한다면, 새로 고침을 멈추거나 jquery를 수행 할 수 있습니다. 쉬운 방법은 페이지의'Meta' refresh 태그를 설정하는 것일 수도 있습니다. – LamonteCristo

1

통신은 클라이언트에서만 수행 할 수 있습니다. Ajax/webservice/scriptmethod를 사용하여 서비스 호출 상태를 검색하십시오.

+0

고마워요! 구현하기가 어렵습니까? – TxAg

+0

이런 유형의 질문은 애플리케이션 요구 사항, 복잡성 등을 모른 채로는 항상 대답하기가 어렵습니다. 그러나 과거에는 webservices/Ajax를 사용했다면 일반적으로 꽤 쉽습니다. –

+0

webservices/Ajax에 대한 경험이 거의 없습니다. 시작하기에 좋은 곳은 어디입니까? – TxAg