2010-06-29 2 views
0

기본적으로 필요한 것은 포트 80에서 수신 대기하고, JSON 개체를 넣을 수있는 소형 콘솔 응용 프로그램입니다.IIS가 아닌 JSON을 보내고 받기위한 .NET 솔루션이 있습니까?

  • JSON 클라이언트에서 값 유형, 목적 및 List<T> (또는 어레이)를 수신하고 .NET 클래스
  • 콘솔
  • 일부 정보를 출력하는 클라이언트
  • 가치 유형, 목적 및 List<T> 전송로 변환

시간당 약 20 - 30 건의 요청으로 성능이 문제되지 않습니다. 클라이언트 측에서 요구 사항으로 IIS 또는 Cassini Web server을 사용하고 싶지 않습니다. 내 콘솔 응용 프로그램 및 종속성 만.

나는 매우 유망 해 보이고 콘솔 호스트에 대한 예제가있는 servicestack.net을 이미 시도했다. Howevery 나는 콘솔 호스트 (XML 만)에서 JSON을 가져올 수 없다.

servicestack.net 또는 대안을 사용하는 방법에 대한 아이디어는 언제든지 환영합니다. 그런데

: 클라이언트는 안드로이드 폰이 될 것입니다 내 현재의 접근 방식 (전화) + WDSL + kSOAP 2를 IIS가 해결보다 더 많은 문제가 발생하기 때문에, 정말 가벼운 독립 JSON 솔루션을 시도하려는.

답변

3

어쩌면 내가 틀렸을 수도 있지만 콘솔 응용 프로그램에서 WCF을 사용할 수 있다고 가정합니다.

+1

매우 쉽습니다. "JSON over WCF"와 "standalone WCF hosting"을 검색하십시오. –

+0

WCF 서비스처럼 보입니다. 적어도 Windows Vista가 필요합니다. http://www.devx.com/VistaSpecialReport/Article/33831/1954 asp.net도 가능합니다. 관리되는 앱 내부에서 호스팅됩니다. 나는이 위대한 기사 http://www.west-wind.com/presentations/aspnetruntime/aspnetruntime.asp을 발견했다. 나는 그것을 시도 할 것이다. –

1

HttpListener을 사용하여 응용 프로그램에서 HTTP 요청을 처리 할 수 ​​있습니다. JSON 직렬화를 직접 처리해야하지만 문제가되지 않을 수 있습니다.

사용중인 프레임 워크 버전에 따라 내장 된 JSON 직렬화 지원을 사용하거나 Json.NET 라이브러리를 사용하여이 작업을 수행 할 수 있습니다. 두 경우 모두 요청을 감지하고 JSON 응답을 리턴해야합니다.

3

Kayak 프로젝트는 여러분이하고 싶은 일을 거의 정확하게 수행합니다. 매우 가볍고 매우 강력합니다. (프로젝트 페이지에서 직접 촬영) 예제의 일부를 체크 아웃 : POSTsGETs 모두뿐만 아니라 경로를

public class PostAPI 
{ 
    [Path("/widgets")] 
    public Widget[] GetWidgets() 
    { 
     return Widget.GetAll(); 
    } 

    [Verb("POST")] 
    [Path("/widgets")] 
    public void CreateWidget([RequestBody] Widget w) 
    { 
     w.Created = DateTime.UtcNow; 
     w.Create(); 
    } 
} 

public class Widget 
{ 
    public string Author; 
    public string Text; 
    public string Created; 

    // (Methods would be here...) 
} 

그것은 자동적으로 직렬화 할 수 및 JSON 객체와 CLR 객체 사이에 역 직렬화하고 동의합니다. 마지막으로 콘솔 응용 프로그램에 쉽게 추가 할 수있는 기본 제공 서버가 포함되어 있습니다.

+0

아주 좋은 프로젝트. 사용법은 dll에 대한 참조를 추가하고 클래스를 꾸미는 것만 큼 쉽습니다 (서버를 시작하기위한 코드 한 줄).하지만 싫어하는 한 가지는 클라이언트 호출이 올바르지 않으면 http 연결이 닫힌 것입니다. 오류 문자열을 반환하거나 디버깅을 어렵게 만드는 콘솔에 정보를 출력하는 대신 –

+0

기본적으로 보낸 HTTP 응답 및 소요 시간과 함께 모든 요청을 콘솔에 기록합니다. 사용자 정의 404 또는 catch-all의 부족으로 인해 문제가 발생할 수 있음을 알 수 있습니다. – kersny

+0

업데이트 : 일부 연구를 수행 한 결과 Kayak의 저자 (Benjamin van der Veen)는 "C ​​#이 사용자 지향 웹 프레임 워크를 작성하는 데 더 이상 적합하지 않다고 생각합니다."라고 말했습니다. ... 자신의 게시물에서 : http://groups.google.com/group/kayak-http/browse_thread/thread/bbadf8266ecaa830 – JasDev

관련 문제