2013-02-05 10 views
0

C#으로 작성된 Windows 서비스가 있습니다. 최근에 원격 웹 관리 및 서비스 모니터링을 허용하기 위해 CassiniDev을 추가했습니다. 호스팅 된 ASP.NET 페이지에서 내 Windows 서비스의 데이터 계층과 상호 작용할 수 없다는 점을 제외하고는 통합이 정말 잘되었습니다.동일한 프로세스에서 실행중인 Windows 서비스와 Cassini-dev간에 데이터를 공유하십시오.

나는 모든 것을 공통 어셈블리에 넣으려고 시도했지만 디버거에는 같은 이름이지만 다른 경로의 두 개의로드 된 어셈블리가 있음을 보여줍니다. Cassini는 일부 임시 폴더에서 ASP.NET을 실행하므로 동일한 프로세스의 주소 공간에 사용하고있는 어셈블리가 실제로 "다른 인스턴스"입니다.

나는 여기서 무슨 일이 일어나고 있는지 잘 모르겠습니다. 아마도 지금은 이해할 수없는 "응용 프로그램 도메인"분리 항목 일 것입니다.

Windows 서비스와 동일한 프로세스에서 실행되는 웹 서버에서 어떻게 상호 작용할 수 있습니까? 서비스 부분에 ASP.NET 부분에서보고 할 일부 상태가 있다고 가정 해보십시오. 내가 어떻게 이런 일이 일어날 수 있단 말인가? 공유 메모리 나 TCP가 마음에 들지만 프로세스 내에서의 의사 소통에만 과도한 소리가 난다.

답변

1

보안이 즉각적인 문제가 아니라 데이터가 매우 민감하고 통제 된 환경에 있지 않은 경우 Named Pipes을 사용하면 성공할 수 있습니다. 파이핑 처리를위한 관리 API가 프레임 워크의 일부로 구현되었으므로 네이티브 호출에서 생각할 필요가 없습니다.

+0

나는 당신의 충고를 받아 들였고 간단한 명명 된 파이프를 사용하여 통신 메커니즘을 구현했습니다. – wpfwannabe