Итак, теперь это работает.Я не очень уверен, почему, так как я не сильно изменился.Боюсь, одним из факторов было то, что мой тайм-аут был слишком мал для отладки (но даже тогда он должен был работать).
Итак, теперь серверный код, который работает для меня (с параметрами и без них)
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class MyService
{
[OperationContract]
public int TestMeWithParam(int lastId)
{
return lastId;
}
[OperationContract]
public int TestMe()
{
return 5;
}
}
Как я уже читал в другом месте, WebInvoke вообще не нужен.Просто простой стандарт.
Код клиента:
function BaseServiceCall(serviceName, dataInput, successCB, errorCB) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: BaseUrl + "Services/MyService.svc/" + serviceName,
data: dataInput,
dataType: "json",
timeout: 200000,
success: successCB,
error: errorCB
});
}
function ServiceGetMessages (lastMessageId, successCB, errorCB) {BaseServiceCall ("TestMeWithParam", '{"lastId": "' + lastMessageId +'"}', successCB, errorCB);// BaseServiceCall ("TestMe", '""', successCB, errorCB);}
Я изменил кавычки в соответствии с предложением Муханнада, хотя я уверен, что пробовал это раньше.
Я также пытался без "lastId", который не работал.
У меня был такой опыт раньше с WCF: ты играешь и играешь, потом он работает, и ты не уверен, почему.(