gpt4 book ai didi

javascript - 从 javascript 调用 Winform 托管的 WCF 服务

转载 作者:行者123 更新时间:2023-11-29 22:38:55 26 4
gpt4 key购买 nike

我有一个带有 Ajax Web 端点的 Winform 托管 WCF 服务。

我也单独有一个ASP.NET项目,页面上有ScriptManager组件。

我的问题是,如果我使用 javascript 从 ASP.NET 应用程序的客户端对我的 Winform 托管服务进行服务调用,这是否可行?

我的 ASP.NET 默认页面如下所示:

<script type="text/javascript">    
function Button1_onclick() {
// ????How to call a service method?????
}
</script>

<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="http://localhost:8000/web" /> //My winform hosted service
</Services>
</asp:ScriptManager>

或者我是否必须在 IIS 中托管我的服务才能被 AJAX 使用?

最佳答案

无论您是自托管还是 IIS 托管 WCF 服务,如果您的网站和服务不在同一地址(协议(protocol)、服务器名称、端口),那么您将遇到 XSS(跨站点脚本)限制。

The MSDN Documentation on ServiceReference.Path states:

“Path 属性只能指向本地 Web 服务。换句话说,该属性只能指向与启用 AJAX 的 ASP.NET Web 应用程序位于同一域中的 Web 服务。路径可以是相对的,应用程序-相对、域相对或绝对路径。”

2 个最佳选择是:

  1. 在本地创建代理 - 也就是说,在您的本地网络中复制服务的接口(interface),然后将请求从代码传递到网络服务。
  2. 更改服务以 JSON 格式返回其结果。这将允许您添加一个动态脚本标签来检索结果。

概述了这两个选项 here .

关于javascript - 从 javascript 调用 Winform 托管的 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3901695/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com