WCF 서비스를 Windows 서비스와 어떻게 전달 하시겠습니까?
-
03-07-2019 - |
문제
2 주 전에 동일한 컴퓨터에서 Windows 서비스를 사용하여 WCF 서비스를 전달하는 방법이 필요했습니다. Windows Service는 외부 소스에서 데이터를 가져 와서 클라이언트가 요청했을 때 제공 해야하는 WCF 서비스 (IIS에서 호스팅)와 공유해야했습니다. 나는 IPC로 그렇게하기로 결정했습니다.
이 작업을 수행했는데 이제 Windows 서비스는 IPC 서버이고 WCF 서비스는 IPC 클라이언트입니다. 이것은 잘 진행되지만 제가이 작업을 수행하는 데 실수를 저지르기 위해서는 Windows 서비스를 ASPNET 계정으로 실행해야하기 때문에이 작업을 수행해야합니다.이를 위해 ASPNET 암호 계정을 할당해야하며 IIS가 올바르게 작동하지 않기 때문입니다. .
나는 다른 대안에 대해 생각하고 있지만, 그들 모두에서는 문제가 지속됩니다. 몇 가지 아이디어?
편집하다:
내가 필요한 것은 IIS에서 호스팅 된 웹 서비스에서 공개 된 시스템으로, 데이터는 다른 오래된 시스템의 Telnet을 통해 얻은 데이터였습니다. 이 두 번째 시스템의 응답이 느린 방법은 웹 서비스와 이전 시스템 사이에 프로세스 (Windows 서비스)를 넣기로 선택했습니다. Windows Service는 이전 시스템에서 수집 한 데이터를 저장해야했으며 WCF 서비스가 IPC를 통해 한 번에 모든 것을 제공 할 때 요청했습니다.
해결책
WCF 서비스와 다른 서비스가 모두 실행되는 ASPNET 사용자의 동일한 권한 세트로 다른 계정을 작성하지 않겠습니까? 그렇게하면 암호를 제어 할 수 있습니다.
다른 팁
Windows 서비스가 ASPNET 사용자로 실행 해야하는 이유는 무엇입니까? 발신자의 인증이 필요한 IPC 연결을 사용하고 있기 때문입니까?
또 다른 대안 (Windows-Service 코드를 제어 할 수있는 경우)은 WCF 서비스 (Windows Service에서 ServiceHost를 사용하여)를 만드는 것입니다. IIS 서비스는 IPC와 유사한 성능이 필요한 경우 NETTCP 또는 NETNAMEDPIPE 바인딩을 사용하여 Windows 서비스에 연결할 수 있습니다.
이상적으로는 Windows 서비스는 WCF 서비스로 실행되어야합니다. 따라서 클라이언트가 쉽게 통신 할 수 있습니다.
다음 질문은 '클라이언트'가 WCF 서비스가되어야하는 날씨입니다. 이 클라이언트가 다른 응용 프로그램에 서비스를 제공 해야하는 경우 적절합니다. 그렇지 않으면 Nessesary가 아닐 수도 있습니다. 나는 당신의 시스템에 대해 충분히 알지 못하므로 가장 좋은 것을 결정하는 것은 당신에게 달려 있습니다!