2014-10-16 2 views
0

클라이언트/서버 인증에 x509 인증서를 사용하는 http 수신기를 만들려고합니다.HttpListener 서버에서 오류를 반환합니다. (503) Service Unavailable

내 서버 코드는 다음과 같습니다. 내가 제대로 모든 것을 구성한 생각

string url = "https://localhost:8006/"; 
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
var store = new X509Store(StoreName.TrustedPeople, StoreLocation.LocalMachine); 
store.Open(OpenFlags.ReadOnly); 
var cert = store.Certificates.Find(X509FindType.FindBySubjectName, "localhost", true); 
request.ClientCertificates.Add((X509Certificate)cert[0]); 
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, policyErrs) => 
    { 
     return policyErrs == System.Net.Security.SslPolicyErrors.None; 
    }; 
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 

을 다음과 같이

_listener = new HttpListener(); 
_listener.Prefixes.Add("https://localhost:8006/"); 
_listener.Start(); 
HttpListenerContext context = _listener.GetContext(); 

내 클라이언트 코드입니다. 인증서 정책 오류가 없으며 포트에 SSL 인증서를 바인딩했으며 수신기를 실행하기 위해 높은 권한이 필요하지 않습니다. 내가 크롬 코드 또는를 통해 웹 요청을하면

enter image description here

나는이 오류가 발생합니다. 여기서 내가 뭘 잘못하고 있니?

enter image description here

+0

'netsh http 명령 사용 '을 시도해 보셨습니까? 아마도 당신이 8006있는 포트는 이미 사용 중입니다. 또한 다음 [httpListener 오류 503의 원인] (http://stackoverflow.com/questions/8142396/what-causes-a-httplistener-http)에서 Google 검색을 수행하십시오. -503-error) – MethodMan

+0

포트 번호를 30001로 변경했는데 이것이 확실하고 동일한 결과를 얻었습니다. –

답변

2

내가 '로컬 호스트'로 변경하면 접두사가 잘못되었습니다 밝혀 '+'다 괜찮 았는데.

관련 문제