이 문제와 관련하여 도움이 필요합니다. 제발 부드럽게 해주십시오, 아직 전문가는 아닙니다 - 아직.C# webservice return error
사실 나는 클라이언트 (브라우저)에서 JSON을 통해 서버 (webservice)로 데이터를 보내려고합니다. Fiddler에서 POST 데이터를 볼 때 보낸 JSON을 볼 수 있습니다. 이것은 유효합니다 (테스트 됨). 하지만 내 웹 서비스 (수동으로 테스트 한 결과 OK를 반환 할 때)는 다음을 반환합니다. "{"메시지 ":"요청을 처리하는 동안 오류가 발생했습니다. ","StackTrace ":" ","ExceptionType ": ""} "
불행히도 내부 용으로 만 제공되므로 웹 서비스를 게시 할 수 없습니다.
나에게 설명 할 수있는 사람이 잘못 되었나요?
1) 자바 스크립트 코드 :
<script>
var markers = "{param1:1, param2:\"test\"}";
$.ajax({
type: "POST",
url: "http://xxx.xxx.xxx.xxx/site/util.asmx/CreateMarkers",
// The key needs to match your method's input parameter (case-sensitive).
data: JSON.stringify({ Markers: markers }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) { alert(data); },
failure: function (errMsg) {
alert(errMsg);
}
});
</script>
2) ASMX 코드
<%@ WebService Language="C#" Class="site.Util" %>
using System;
using System.Web.Services;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Script.Services;
namespace site{
[WebService(Namespace="http://xxx.xxx.xxx.xxx/site/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Util: WebService
{
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string CreateMarkers(int param1, string param2)
{
return "OK";
}
}
시도에 맞게 전송되는 데이터 포맷을 시도 : data : marker, ... param1, param2에 대한 up 매개 변수가 일치하는 데이터가 이미 json 형식 인 것 같습니다. 루트 Markers 속성을 원하지 않습니다. – Andez
Postman (https://www.getpostman.com/)과 같은 앱을 사용하여 웹 서비스 API를 테스트 해 볼 수도 있습니다. 그것은 독립 실행 형 또는 브라우저에 플러그인으로 사용할 수 있습니다. 순수한 API를 테스트하여 데이터를 보내고받을 수 있으므로 송수신 내용이 예상대로 맞는지 확인할 수 있습니다. –
@Andez 감사합니다.하지만 수정하지 않아도이 값을 피들에서 볼 수 있습니다. { "Markers" : "{param1 : 1, param2 : \"test \ ""} 올바른 JSON이 아닌 {param1 : 1, param2 : "test"}를 제안 할 때이 부분이 바뀌 었다고 가정합니다. 이 말이 맞지 않을 수도 있습니다. 좀 더 도와 줄 수 있어요? 위의 대답에서 –