문제

C# .NET 클래스 httplistener를 프로덕션 칼리버 웹 서버의 기초로 사용하는 것이 현실적입니까?

호스팅 해야하는 HTTP 웹 서비스에는 .aspx 또는 정적 파일이 포함되어 있습니다. 모든 HTTP 응답은 동적이며 C# 코드에서 생성되어 있으며 RESTFul URL 형식을 검사하는 몇 가지 스위치 문을 통해 호출됩니다.

내 생각은 IIS가 실제로 모든 헤비 듀티 네트워크 처리를 수행하는 Windows O/S HTTP-Sys 커널 모듈 주변의 사용자 모드 래퍼라는 것입니다.

이미 인스턴스에서 디버그 모드에서 시작하기 때문에 개발에 탁월한 기본 멀티 스레드 웹 서버가 실행 중입니다. 이제 제작을 위해 IIS의 과잉이 필요하다고 생각합니다. 낮은 메모리 발자국은 또 다른 매력입니다.

도움이 되었습니까?

해결책

여기에는 두 가지 진지한 선택이 있습니다. 그리고 httplistener로 자신의 웹 서버를 코딩하는 것은 프로덕션 등급이 아닙니다.

1) IIS를 사용하십시오. 보안, 성능 및 아마도 더 중요한 기능이 있습니다. 관리 가능성, 당신은 자신을 재창조해야 할 것입니다. 원격 관리, 로깅, 통합 Windows 보안 등과 마찬가지로

2) WCF를 사용하고 ServiceHost를 작성하여 파일을 호스팅하십시오. 그런 다음 자신의 서비스를 구현하고 평생을 관리 할 수있는 방법을 찾아야합니다. 당신은 그것을 할 수 있지만, 다시, 당신이 편안한 웹 통화를하고 있다면, IIS는 실제로 갈 길입니다.

수동으로 자신만의 롤링을 피해야합니다. IIS는 지난 10 년 동안 많은 변화를 겪었습니다. 결코 더 이상 큰 모 놀리 식 서버가 아닙니다. 그들은 특히 Windows 2008에서 거의 모든 것을 모듈화 했으므로 마른 빠른 시스템을 얻습니다.

다른 팁

글쎄, 말했듯이 - 처음에는 II를 사용해보십시오.

httplistener는 전혀 나쁘지 않습니다. 이제 가장 빠르게 관리하는 리스너 서버입니다 (Tcplistener보다 빠르고 소켓 클래스보다 빠릅니다). 그리고 그것은 실제로 II와 같은 핵심입니다. 그러나 II에는 더 많은 것이 있습니다.

IIS가 Monolith라고 말할 수는 없습니다. 호스팅 사용량은 안정성과 관리 측면에서 Win2008에서 악화되었다고 보여주었습니다. 그러나 손으로 만든 솔루션은 훨씬 더 나빠질 수 있습니다. 또한 http.sys는 httplistener보다 훨씬 더 사용자 정의 할 수 있습니다. 즉, 당신은 httplistener로 스트리밍을 할 수 없지만 http.sys-로 할 수 있습니다. httplistener 스트리밍에 대한 질문

그러나 개발자로서 충분한 전력을 가질 경우 HTTP.Sys 래퍼를 작성하려고 시도 할 수 있으며 Windows에서 자체 웹 서버를 작성하는 가장 좋은 방법입니다.

쓰레기, 직접 굴립니다. 아키텍처는 그것을 허용합니다. 수업에는 이상한 행동이 있지만주의하십시오. NT 서비스에서 두 번 닫으면 퍼프 페이스트리 가방으로 깜짝 놀랄 만한다.

콘솔에서 실행하면 아무런 문제가없고, 비동기를 실행하면 모든 것이 잘되어야합니다. 그것은 Microsoft 봉인 클래스에서 오류가 발생하지 않기 때문에 현재 어려움을 겪고있는 다른 문제입니다.

나는 파이썬이 약간의 체리를 가지고 오는 것을 느낍니다.

당신이 그것을 쓰면, 당신은 그것을 유지해야합니다. Microsoft는 이미 웹 서버를 작성했습니다. 사용해야합니다.

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