Это не ответ, а средство помочь вам добраться туда.
<Ч />
Даже если у вас есть ошибка, вы ее не получите, так как вы вообще не обрабатывали ошибку.
Также стоит проверить, есть ли в вашем сообщении «d», так как это функция ASP.NET 3.5+.
Кроме того, не возвращайте msg.d, попробуйте предупредить его.
Образец будет
$.ajax({
type: "POST",
url: "http://localhost/WSTest/Service.asmx/AuthorGetById",
data: "{pkId :'" + pkId + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
var datum = msg.hasOwnProperty("d")? msg.d : msg;
alert("Success" + datum);
}
error:function (xhr, ajaxOptions, thrownError){
alert("Error");
}
});