我通过jQuery Ajax调用启动了WCF服务。我得到的错误是
“jQuery182021375292306765914_1377272303506未被调用”
它完全正常,直到我尝试将缓存添加到WCF,这是我的.Net代码
[OperationContract]
[Description("Gets Session List")]
[WebGet(BodyStyle = WebMessageBodyStyle.Bare,
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "GetSessionList")]
[AspNetCacheProfile("CacheFor60Seconds")]
List<Session> GetSessionList();
和我的web.config
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<add name="CacheFor60Seconds" duration="3600" varyByParam="none"/>
</outputCacheProfiles>
</outputCacheSettings>
</caching>
我也有aspNetCompatibilityEnabled =“true”
这是我的JS代码
var location = JSON.stringify(j$("#Filter option:selected").val());
j$.ajax({
cache: true,
url: "http://localhost:57200/Service.svc/GetSessionList",
data: "{}",
type: "GET",
jsonpcallback: "SessionList",
contentType: "application/javascript",
dataType: "jsonp",
error: function(xhr, status, error) {
alert(error.Message);
},
success: function (data) {
builtHtml(data);
},
complete: function () {
j$("#button").disabled = false;
j$('#searchbox').removeClass('loading');
j$("#resultsBlock").show();
}
});
如果我将WCF缓存设置为1(即使我从不真正缓存,除非我很快),它工作正常,但如果我将其提升到触发缓存的响应时,错误块将在jQuery中触发。在打开缓存的情况下从浏览器调用WCF工作正常,因此它不是问题,它与AJAX响应。
非常感谢任何帮助。