c# - 使用 jquery POST 数据的启用 Ajax 的 wcf 服务在短时间内未发送

标签 c# jquery .net asp.net wcf

我正在使用一个启用了 ajax 的 wcf 服务和一个 jquery POST 方法,该方法为我的侧边栏菜单获取数据。
它在页面加载后效果很好,但如果我等待几分钟然后尝试获取数据,我将得不到任何响应。 Firebug 显示请求是从浏览器发送的,但是在 Debug模式下我没有看到命中,服务器甚至没有意识到请求已发送。
有什么建议吗?

编辑 这是一些相关的代码
客户端:

$.ajaxSetup({
    type: "POST",
    contentType: "application/json",
    timeout: 10000,
    cache:false,
    dataType: "json"

});

function getSubcategories(categoryId, onSuccess, onError) {
    var request = new Object();
    request.categoryId = categoryId;
    var jsonData = JSON.stringify(request);
    $.ajax({
        url: "/SiteService.svc/GetSubcategories",
        data: jsonData,
        success: onSuccess,
        error: onError
    });

服务器端:

[ServiceContract(Namespace = "myService")]

    public interface ISiteService
    {

        [OperationContract()]
        SiteServCategory[] GetSubcategories(int categoryId);
    }

网络 session

 <system.serviceModel>

    <services>

      <service name="App_Code.Services.Website.Site.SiteService" behaviorConfiguration="DebugEnabled">
        <endpoint behaviorConfiguration="SiteServiceAspNetAjaxBehavior" binding="webHttpBinding" contract="App_Code.Services.Website.Site.ISiteService"/>
      </service>
    </services>
    <behaviors>
      <endpointBehaviors>
       <behavior name="SiteServiceAspNetAjaxBehavior">
          <enableWebScript/>
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
            <behavior name="DebugEnabled">

          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>
  </system.serviceModel>

最佳答案

我相信您的 OperationContract 需要用 WebInvoke 来装饰或 WebGet以将其公开为 JSON。

[WebInvoke(BodyStyle=WebMessageBodyStyle.Bare, ResponseFormat=WebMessageFormat.Json)]

关于c# - 使用 jquery POST 数据的启用 Ajax 的 wcf 服务在短时间内未发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5763225/

相关文章:

javascript - 如何将 IEnumerable<HtmlElement> 转换为常规 HtmlElement

c# - LINQ 按错误分组 : "does not contain a definition for ' GroupBy'"

c# - 登录 C# Windows 服务

javascript - 如果 window.location 立即更改,浏览器是否会生成 AJAX

c# - 尝试使用自定义验证属性时出现 System.InvalidOperationException

c# - 在 C# .NET 框架中获取蓝牙设备列表

c# - 将 Entity Framework 模型映射到多个表

c# - 更新到 Apple SDK 4.3 后的 Monotouch 'mtouch failed with no output (137)'

javascript - 一段时间后提交表单

jquery - 使用 JQuery 缩小 css 背景大小