2011-04-12 5 views
1

현재 WebMatrix.Data.Database.Open을 사용하여 다양한 데이터베이스를 직접 쿼리하는 Razor 뷰 엔진을 사용하는 ASP.Net 프로젝트가 있습니다.WCF 서비스를 쿼리하는 WebMatrix에서 가장 좋은 방법은 무엇입니까?

WCF를 사용하는 웹 서비스에 대한 모든 직접 데이터베이스 액세스를 마이그레이션하여 일관된 비즈니스 로직을 얻으려고합니다. 이렇게하면 WCF 서비스를 "httpGetEnabled"로 설정할 수도 있습니다. 이를 통해 Excel 매크로를 사용하여 동일한 웹 서비스를 쿼리 할 수 ​​있습니다.

제 질문은 Razor/WebMatrix 페이지에서 이러한 웹 서비스를 쿼리하는 가장 좋은 방법은 무엇입니까?

JSON으로 내 WCF 서비스를 활성화하고 WebMatrix JSON 도우미를 사용해야합니까? 아니면 내가 XML을 얻으려면 JQuery를 사용해야합니까?

내가 가장 좋은 방법이라고 생각 하겠지만 JSON으로 내 WCF 서비스를 사용하려면 어떻게해야합니까? JSON을 얻으려는 WCF 요청에 추가 쿼리 매개 변수를 지정할 수있는 비디오를 보았지만 다시 찾지 못했습니다.

올바른 방향으로 생각이나 조언을 주시면 감사하겠습니다.

친절하게 제공합니다.


편집 : 나는 최근에 스택 오버플로에 본 적이

이 다음에 Client Side Binding using by Converting the WCF Services to JSON

, 나는 WebHttpBehavior 주위에 언급 된 MSDN 문서에 갔다. 이후로 "autoFormatSelectionEnabled = true"를 Web.config의 webHttp 요소에 추가했습니다. 지금 바로 결과를 얻을 수있는 WebMatrix JSON 도우미를 사용하는 방법을 해결해야 할

string formatQueryStringValue = WebOperationContext.Current.IncomingRequest.UriTemplateMatch.QueryParameters["format"]; 
if (!string.IsNullOrEmpty(formatQueryStringValue)) 
{ 
    if (formatQueryStringValue.Equals("xml", System.StringComparison.OrdinalIgnoreCase)) 
    { 
     WebOperationContext.Current.OutgoingResponse.Format = WebMessageFormat.Xml; 
    } 
    else if (formatQueryStringValue.Equals("json", System.StringComparison.OrdinalIgnoreCase)) 
    { 
     WebOperationContext.Current.OutgoingResponse.Format = WebMessageFormat.Json; 
    } 
} 

: 또한, 나는 다음 날 쿼리 매개 변수로 "형식 = JSON"을 지정할 수 다음 코드를 추가했다. .. 더 많은 정보를 얻을 때 업데이트 될 것입니다.


편집 2

흠, 난 지금은 웹 서비스에서 JSON을 얻을 수 있습니다 ... 도움이 생각하지 않지만, JSON 웹 도우미는 이미 일부 JSON 데이터가있는 경우 도움이 보인다 . 그 JSON 데이터를 가져 오는 방법을 잘 모르겠습니다. 그런 다음 JSON 도우미를 사용하여 클래스로 변환 (디코드) 할 수 있습니다.

내 질문에 지금은 어떻게 JSON 데이터를 얻은 다음 WebMatrix/Razor를 사용하여 WebGrid에서 사용할 수 있습니까?

+0

클라이언트 또는 서버에서 서비스를 호출 하시겠습니까? – SLaks

+0

나는 환경 설정이 정말로 없다. 나는 단지 가장 좋은 방법으로 간주되는 것을하고 싶다. – Darren

+0

그것은 당신이하려는 일에 완전히 달려있다. – SLaks

답변

0

나는 올바른 경우이 사례에서 가장 좋은 방법이 무엇인지 알고 싶습니다.

내가 아는 한 최선의 방법은 wcf를 통해 웹 사이트 쿼리를 작성하지 않는 것입니다.

왜? - 둘 다 서버에 있으므로 데이터를 얻기 위해 다시 연결을 만들지 마십시오. 그들은 둘 다 webmatrix 데이터를 직접 연결해야합니다. 농장 동물을 저장 한 .exe와 같은 다른 응용 프로그램에는 WCF를 사용합니다.

추가 참고 사항 : ASP에 WCF를 추가 할 수 있습니다.NEt 프로젝트와 같은 데이터베이스에 액세스 할 수 있습니다. 그래도 필요한 경우 가장 좋습니다.

+0

나는 Wcf가이 예제에서 약간 과잉이라고 동의한다. 서버에서 둘 다 무슨 뜻인지 모르겠습니다. 웹 페이지에 의해 만들어진 모든 요청은 서버에서 생성되지 않고 클라이언트 컴퓨터에서 생성됩니다. – Jesse

+0

미안하지만 분명하지 않은 경우에는 멀티 태스킹이 필요합니다. 웹 페이지를 두 개의 서로 다른 경로에서 요청할 때 어떤 점이 있습니까? 모든 코드를 체계화하는 것이 더 어려울 것입니다. 둘 다 서버에 위치하여 웹 사이트를 통해 지금까지 얻은 모든 것을 제공 할 수 있습니다. –

+0

지연된 응답을 드려 죄송합니다. 내 문제는 웹 서비스가 이미 존재하고 복제하고 싶지 않은 비즈니스 논리를 가지고 있다는 것입니다. 또한 다른 곳의 레거시 데이터베이스에도 연결됩니다. 마지막으로 웹 서비스를 제어 할 수 없다면 어떻게 될까요? VS에 웹 참조를 추가했는데 (WebMatrix 인터페이스에서 할 수 있는지 잘 모르겠다), 이제는 서비스 모델에서 엔드 포인트를 찾을 수 없다는 오류가 나타납니다. 더 쉬운 방법이어야합니다 ... – Darren

관련 문제