【问题标题】:ScriptManager WCF Service IE ProblemScriptManager WCF 服务 IE 问题
【发布时间】:2011-01-18 10:48:56
【问题描述】:

我有一个通过 ScriptManager 控件使用的 WCF 服务:

<asp:ScriptManager ID="ScriptManager1" runat="server">
    <Services>
        <asp:ServiceReference Path="/service/client.svc" />
    </Services>
</asp:ScriptManager>

为了在这个服务中调用方法,我使用了一些 javascript/jQuery:

$().ready(function () {
    RefreshClient();
});

function PlaceBid() {    
    var client = new theClient();    
    client.DoSomething(1, 1000, 2000, 50, 5000, 1000, UpdateResult, null, null);
}

function UpdateResult(data){
    // logic and more jQuery to update controls on page
    // e.g. $('#status').html('<div class="something">' + data.msg + '</div>');
}

在我的 Client.svc 服务中,我对数据库进行了一些调用,然后根据数据库值返回结果。

在 Chrome、FF、Opera 中一切正常。但是,IE8/7 中出现了一些问题,由于某种奇怪的原因导致脚本无法运行。

如果我调试项目并逐步通过 IE 工作正常,并且当我使用更改更新数据库时,这些更改会被拉出,并且页面上的控件(例如简单的 )会相应地更新。一旦我停止调试,IE 页面就会停止工作。

好像 IE 正在缓存 client.DoSomething 函数,所以每次总是返回原始值而不是新值。

有什么想法吗?

【问题讨论】:

  • hmm 似乎是在缓存结果,但仅在 IE 中。我添加了以下行:WebOperationContext.Current.OutgoingResponse.Headers.Add("Cache-Control", "no-cache") 以阻止该方法缓存结果,现在一切似乎都运行良好,尽管我点击了“ Ajax 客户端框架加载失败”错误!

标签: asp.net wcf scriptmanager


【解决方案1】:

hmm 似乎是在缓存结果,但仅在 IE 中。

我添加了以下行:WebOperationContext.Current.OutgoingResponse.Headers.Add("Cache-Control", "no-cache") 以阻止该方法缓存结果,现在一切似乎都运行良好,尽管我点击“Ajax 客户端框架加载失败”错误!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 2012-06-19
    相关资源
    最近更新 更多