하나의 VS 솔루션에는 클라이언트 (wpf app)와 wcf 서비스 lib라는 두 개의 프로젝트가 있습니다.
저는 메시지 보안과 사용자 정의 AspNetMembershipPrivider를 사용하여 사용자 이름을 확인하고 패스합니다.
저는 Windows 보안을 사용하지 않기 때문에 서버에서 인증서를 사용하여 보안 채널을 설정해야했습니다.
- 내 로컬 IIS 관리자를 열고 likemy dev machine이라는 자체 서명 된 인증서를 추가했습니다.
-이 인증서가 개인 인증서
아래의 인증서 스냅인에 표시되었는지 확인 - 해당 인증서를 가리 키도록 wcf .config를 구성했습니다.
- 내 클라이언트 응용 프로그램을 VS에서 시작했습니다. (VS도 내 wcf lib 용 wcfhost 응용 프로그램을 시작했습니다.)
wcfhost가 정상적으로 작동하고 재부팅 할 때까지 서비스가 제대로 작동했습니다.wcf 인증서 재부팅 후 Keyset이 존재하지 않습니다.
The certificate 'CN=xxx' must have a private key that is capable of key exchange. The process must have access rights for the private key. ---> System.Security.Cryptography.CryptographicException: Keyset does not exist
만 건 helpes 내 인증서를 다시 무엇, 다시 재부팅 때까지 재부팅 wcfhost는 불평을 언급 한 후. 위에서 언급 한 것처럼 내 서비스는 내 사용자 계정 (로컬 관리자)에서 실행되므로 내 c : \ Users \ xxx \ AppData \ Roaming \ Microsoft \ Crypto \ RSA \ 파일에 대한 사용 권한이 문제라고 생각하지 않습니다.
iis 관리자를 사용하여 인증되지 않은 인증서를 만드는 이유는 내가 갖고있는 공유 된 계정에 대해 모든 작업이 진행되기를 원하기 때문입니다. (자체 서명 생성을위한 호스팅 패널에 옵션이 있습니다. 인증서).
아무도 도와 드릴 수 있습니까? 감사합니다
아, 한 번에 내 집 PC (비스타)에서 "관리자 권한으로 실행"을 실행했습니다. 프로세스가 실행중인 서비스 계정이 인증서에 대한 액세스 권한을 가지고있는 한 IIS7 및 메시지 보안에 어려움이있을 것이라고는 생각하지 않습니다. 어느 쪽이든, 당신은 전송 보안 인증서와 같은 문제가있을거야. CodePlex - http://www.codeplex.com/WCFSecurityGuide에는 필요한 모든 것을 다루는 데 도움이되는 다양한 시나리오에 대한 유용한 정보와 체크리스트가 있습니다. – Tanner