내 컴퓨터가 포트 80을 포트 80으로 전달하는 라우터 뒤에 있습니다. 내 문제는 HttpListener가 외부 IP 주소로 주소가 지정된 요청을 무시하는 것입니다.HttpListener가 외부 요청을 무시하는 이유는 무엇입니까?
라우터에 문제가 없습니다. 나는 빈의 C# 콘솔 프로젝트를 만들고 코드의 다음 줄을 추가하는 경우 :
System.Net.Sockets.TcpListener s = new System.Net.Sockets.TcpListener(System.Net.IPAddress.Any, 80);
s.Start();
System.Net.Sockets.TcpClient c = s.AcceptTcpClient();
을 ... 프로그램 [메모를 실행 :이 프로그램을 처음 실행을, 사용자는 방화벽을 허용 할 수 있습니다 내 브라우저에서
http://localhost/testpath/
로 이동하는 경우 예외]이 종료됩니다 또는 내 브라우저에서
http://externalipaddress/testpath/
로 이동 한 경우 - 중 주소가 성공적으로 포트 80 연결을 시도합니다. 그래서, 모든 것이 제대로 설정 -이 컴퓨터 포트에 내부 및 외부 연결을 받아 들일 수 80
지금, 나는 코드의 다음 줄 또 다른 빈의 C# 콘솔 프로젝트를 만들고 추가하는 경우 :
System.Net.HttpListener s = new System.Net.HttpListener();
s.Prefixes.Add("http://+:80/testpath/");
s.Start();
System.Net.HttpListenerContext c = s.GetContext();
을
... 먼저, this question에서 언급 된 문제로 인해 액세스가 거부되었다고 HttpListenerException이 발생합니다. 그런 다음 Visual Studio를 닫고 관리자로 다시 열면 제대로 실행됩니다. 내가
http://externalipaddress/testpath/
로 이동하면 프로그램이 (제대로) 내가
http://localhost/testpath/
로 이동하지만, 내 요구는 간단 회에서 종료됩니다 이유는 무엇입니까 아웃 시간 HTTP Listener에가 내 외부 요청? 그 결과는 'externalipaddress'에 대한 숫자 IP 주소 또는 도메인 이름뿐만 아니라 서브 폴더, 슬래시 등의 많은 순열과 접두어 "http : // * : 80/testpath /", "http : // externaldomain : 80/testpath/"및"http : // externalipaddress : 80/testpath/"(공백 없음, 스택 오버플로 형식에 추가됨).
포트 80에서 들어오는 연결을 차단했는지 ISP에 질문 했습니까? 흔하지 않지만 일부는 그렇습니다. 또한 외부 IP를 해결하여'homeusr51363_516.your_isp.com' 또는 비슷한 주소 – rath
ISP가 들어오는 연결을 차단했다면 (외부 IP 주소를 통해 포트 80에 연결하는) 첫 번째 코드의 성공은 어떨까요? 설명하니? 앞서 언급했듯이 브라우저 요청에 숫자 IP 주소와 확인 가능한 도메인 이름을 사용하려고했습니다. – Ben