2012-01-12 2 views
1

이것은 여러 가지 해결책으로 몇 가지 해결책을 제시했지만 다른 곳에서 논의한 내용 중 일부 문제는 해결할 수 없습니다.JSON에서 XML로 Webservice 출력을 변환하는 IIS

결과를 JSON으로 반환하도록 ASP.net 웹 서비스가 설정되어 있습니다. 우리는 결과를 얻기 위해 JQuery $ .post를 사용합니다.하지만 거의 확실하게 문제의 일부는 아닙니다. 클라이언트 측에서 결과가 도착하면 XML 태그로 래핑됩니다. 그래서,이 같은 반환 대신 :

<?xml version="1.0" encoding="utf-8"?> 
{data} 

가 ... 그들은 이렇게 돌아 ...

<?xml version="1.0" encoding="utf-8"?> 
<string xmlns="[SomeURL.com]">{data}</string> 

을이 테스트의 과정에서 우리는 ASP.net 3.5의 기본을 발견했습니다 webservice 결과는 JSON 이었지만 ASP.net 4.0에서는 XML로 변경되었습니다.

우리는 ASP.net 3.5 테스트 웹 서비스 응용 프로그램을 다운로드하고 테스트하기 위해 예상대로 JSON에서이 출력을 로컬로 다운로드했습니다. 그런 다음 응용 프로그램을 4.0으로 업그레이드하여 XML로 출력하기 시작했습니다. 그러나 로컬에서는 외부 태그없이 JSON으로 출력을 계속했습니다.

그런 다음이 테스트 응용 프로그램을 IIS 7.0 서버로 옮겼으며 즉시 XML로 출력하기 시작했습니다. 즉, 문제는 IIS 내의 설정과 로컬 설정의 관계였습니다.

우리는이 게시물을 발견 :

asmx web service returning xml instead of json in .net 4.0

을 ... 그리고 3.5 버전으로 Web.config를 통해 4.0 스크립트 처리기를 교체 시도했다. 그러나 이것은 작동하지 않습니다. web.config가 수정 된 후 우리는 IIS 핸들러 매핑 영역에서 다음을 갖게됩니다.

ScriptHandlerFactory - 3.5 버전.
ScriptHandlerFactoryAppServices-Integrated-4.0 - 4.0 버전.

...하지만 ...

WebServiceHandlerFactory - 통합 - 2.0 버전
WebServiceHandlerFactory - 통합 - 4.0-4.0 버전
WebServiceHandlerFactory-ISAPI-2.0
WebServiceHandlerFactory-ISAPI-2.0-64
WebServiceHandlerFactory-ISAPI-4.0_32bit
WebServiceHandlerFactory-ISAPI-4.0_64bit

그래서 ... 우리가 어디 그건 -에 IIS 설정 덤비는 JSON으로 전송할 웹 서비스를 사용해보십시오. 우리는 이것이 IIS 설정이거나 적어도 ASP.net 4.0 대 3.5 설정임을 확신합니다. 배경으로

는 ASP.net의 웹 서비스는 다음과 같습니다

<System.Web.Script.Services.ScriptService(Namespace:="[SomeURL.com]")> _ 
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _ 
<ToolboxItem(False)> _ 
Public Class RequestM 
Inherits System.Web.Services.WebService 

<WebMethod()> _ 
<ScriptMethod(ResponseFormat:=ResponseFormat.Json, UseHttpGet:=False, XMLSerializeString:=False)> _ 
Public Function dataRequestJSON(ByVal JsonRequestObject As String) As String 

    Try 

     Dim MyNewDataRequest As New DataRequest(JsonRequestObject) 
     Dim MyJsonResponse = MyNewDataRequest.JsonResponse 
     Return MyJsonResponse 

    Catch ex As Exception 
     Return ex.Message 
    End Try 

End Function 

도와주세요!

감사합니다.

답변

0

문제는 json 요청의 서식 이었지만 유효한 json 인 반면 asp.net 웹 서버는 여전히 xml을 반환했습니다. iis 설정과 관련이 전혀 없습니다. 다른 포럼에서 빨간 청어 였음에 틀림 없음

+1

해결 방법에 대한 자세한 정보를 제공 할 수 있습니까? 나는 바로 지금 같은 상황에 처해있다! –

0

ASP.NET 3.5 웹 서비스를 클래식 ASP.NET 2.0 응용 프로그램 풀로 지정해야 할 수도 있습니다.이 작업은 웹 서비스의 "고급 설정"에서 수행 할 수 있습니다.

관련 문제