문제

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가 아닐 수도 있습니다. 나는 당신의 시스템에 대해 충분히 알지 못하므로 가장 좋은 것을 결정하는 것은 당신에게 달려 있습니다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top