我已经使用 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 响应有关。
任何帮助将不胜感激。