【问题标题】:WCF Rest With Jquery Ajax and .Net Application consultationWCF Rest With Jquery Ajax 和 .Net 应用程序咨询
【发布时间】:2011-11-21 21:49:19
【问题描述】:

我需要您的帮助和咨询,因为我遇到了一些错误的架构应用程序设计问题。

案例:我正在为客户端开发基于asp.NET 4.0的Web应用程序,我几乎完成了这个项目的85%,项目架构如下:

  • 前端服务器:Web 应用程序、Ajax JQuery 调用 WCF Rest 服务。
  • 应用服务器:托管 WCF Rest 服务和 DAL 组件。
  • SQL Server:自行托管数据库

我认为我的问题是跨域问题,我的客户确保解决方案应该部署在 3 台服务器上,因为你知道我已经坚持使用解决方案,我需要找到解决问题的方法。所有 3 台服务器都托管在同一个 DOMAIN 但具有不同的 IP 地址,我尝试使用 JSONP 方法,但它似乎有一些限制和缺点,例如没有错误处理,这是我的客户要求之一(是否可以进行 POST,使用 JSONP 进行 PUT 操作?),我也尝试维护服务器响应标头,但我认为它不适用于所有浏览器,例如 IE 9、Chrome ..

这个问题真的让我很尴尬,我需要你的专业和咨询帮助,有人建议我在前端创建另一个 WCF rest 并调用其他服务,但我认为它会使性能非常慢。

干杯。

【问题讨论】:

  • 但究竟是什么问题。如果所有计算机都放在同一个域中。
  • 但我有相同的设置,它工作正常。问题究竟出在哪里?客户端和服务器之间?服务器和数据库之间?
  • @Gregory Nozik 在客户端和服务器之间,当将其余主机放在客户端服务器中时,它就像魅力一样,如果我将其余主机移到应用服务器并指向 ajax 从那里调用它,它会返回状态:0 错误消息:“错误”
  • 我遇到了同样的问题。您是否尝试调试其余服务。可能是安装的问题。WCF Rest 4 在使用 IIS 6 时出现问题。如果您从本地应用服务器调用 rest 服务,它会工作吗?
  • 所有机器上的 IIS7 Windows 2008

标签: jquery .net wcf rest cross-domain


【解决方案1】:

我也一直在和这个问题作斗争,还没有找到完美的答案。这里有一些事情至少可以让你走得更远。

一种选择是配置您的 webHttp 行为,使其不包含 faultExceptionEnabled="true" 属性。这样,jQuery 不会命中错误处理程序,而是成功处理程序。 WebFaultException 仍应使用 JSON 填充成功处理程序中的数据参数。这种方法的缺点是我还没有找到包装错误异常的方法,因此我可以轻松检查该成功处理程序中是否确实发生了错误。我在 JSON 中得到的只是故障的属性。

下一个选项是将 Web 前端放入与 WCF 服务相同的网站上的不同虚拟目录中。这种方法不应该有任何跨域问题。并不总是理想的解决方案,但它确实有效。

如果我使用 Cassini Web 服务器或 IIS Express,我也会在本地遇到问题。我认为浏览器会将对不同端口上网站的请求解释为跨域请求。我可以在本地成功工作的唯一方法是,如果我在我的开发盒上安装了 IIS,并将服务和前端都托管在默认网站上。

如果有人想出更好的方法,请分享。这足以让一个人发疯。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-02
    • 2012-07-25
    • 1970-01-01
    • 2012-04-23
    • 2013-06-21
    • 2012-07-26
    • 2015-06-28
    • 1970-01-01
    相关资源
    最近更新 更多