#asp.net #wcf
#asp.net #wcf
Вопрос:
У меня есть новый веб-сервис, который я пытаюсь реализовать… когда я запускаю его в отладчике, функция, вызываемая в службе, останавливается на точке останова, которую я установил, но я замечаю, что значение равно null… Я сжег себя в последний день, пытаясь разобраться в этом.
Я приношу извинения, если я кажусь рассеянным или не даю достаточно информации … Я ценю любую помощь
Я также пробовал это с помощью Fiddler; он останавливается в точке останова, как указано выше.
Я думаю, что мой json может быть странным?
Вызов от клиента:
var url = "http://localhost:35798/Service.svc/Test;
var json = '{"name": "test"}';
$.ajax({
type: "GET",
url: url,
dataType: "json",
processData: true,
data: json,
contentType: "application/json; charset=utf-8",
success: function (data) {
alert("Passed" data.CheckFileResult);
},
error: function (data) {
alert(data.d);
}
});
Служба:
[OperationContract]
[WebInvoke(Method="GET", ResponseFormat=WebMessageFormat.Json)]
public string Test(string name)
{
return "hi";
}
Конфигурация службы:
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="Site.Service1AspNetAjaxBehavior">
<enableWebScript />
</behavior>
<behavior name="Site.ServiceAspNetAjaxBehavior">
<enableWebScript />
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<services>
<service name="Site.Service">
<endpoint address="" behaviorConfiguration="Site.ServiceAspNetAjaxBehavior"
binding="webHttpBinding" contract="Site.Service" />
</service>
</services>
</system.serviceModel>
Ответ №1:
Как насчет синтаксиса этой строки:
var json = '{"name": "test"}'
Не должно ли это быть:
var json = '{name: "test"}';
Редактировать: ваши первые две строки, похоже, немного не соответствуют imo. Попробуйте:
var url = "http://localhost:35798/Service.svc/Test";
var json = "{name: 'test'}";
Комментарии:
1. Извините, я быстро копировал / вставлял; я пытался изменить json, но это все равно не сработало. Также я попробовал ваш пример json на jsonlint.com и ей это не понравилось. Однако спасибо!
Ответ №2:
Я выяснил это, используя ссылку на службу для подключения к методам, а затем я просмотрел запрос в fiddler и понял, что json действительно был искажен…Там было лишнее пространство
'{ "name":"test"}'
Спасибо…