0

我已经使用 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 响应有关。

任何帮助将不胜感激。

4

0 回答 0