【问题标题】:Web service failing when installed in seperate project from the website安装在与网站不同的项目中时,Web 服务失败
【发布时间】:2011-02-07 07:08:26
【问题描述】:

我对 Web 服务完全陌生,无法让我的工作。

我的设置是在 VS 2008 上使用 IIS。我有一个解决方案文件,其中包含 3 个项目:网站、代码和服务。

如果我将我的网络服务放入我的网站并在本地调用它,那么它会正常工作(它只是一个 hello world 网络服务)。我想将服务放到不同的位置以供多个站点使用。

我不知道我做错了什么 - 我已经阅读了很多关于迪斯科文件、访问文件、silverlight、flash、java 等的相互矛盾的信息。

我只是在寻找快速简单的步骤来创建可以从 javascript 访问并部署到单独网站的 Web 服务。最终目标是在 web 服务中具有功能,以便网站可以通过 JS 调用,并在加载时间和异步调用中运行得更加流畅。

  • 我需要创建一个迪斯科文件吗?
  • 我需要配置安全性吗? -- 我知道这可能是最好的,我只是想让它工作。
  • 我是否需要在 IIS 或我的托管服务器上允许跨浏览器访问?
  • 有没有可以推荐的快速参考网站?
  • 我应该使用 WCF 作为新技术吗? - 我在 MSDN 上看到了这个,但似乎更多的是 Windows 应用程序而不是 Web 应用程序。

我没有收到任何具体的错误代码。我已经安装了 firefox 调试工具 (firebug),我可以看到标头是什么,但我不知道如何解释它们,并且没有回传任何响应。

感谢任何帮助!!!

【问题讨论】:

  • 您可以尝试创建服务时创建的基本“hello, world”Web 服务。然后你可以一步一步地告诉我们你做了什么。事实上,您可能想说您使用的是 WCF 还是 ASMX 服务。
  • 我讨厌问什么可能是一个简单的问题...我正在尝试使用 asmx Web 服务(这就是为什么我想知道 wcf 是否是更好的方法)而且我只是使用如上所述的默认 hello world 服务。在同一个项目中,我可以让它正常工作。只要 asmx 文件在同一个项目中,我什至可以在程序集中编写代码。我不知道如何将 asmx 项目部署到 Web 服务器或同一台计算机上的不同 IIS 目录。我收到代码为 0 且没有任何信息的错误。我可以手动浏览到 asmx 文件,但不能通过代码调用它。

标签: javascript web web-services


【解决方案1】:

当你的 JS 调用你的 webservice 时,两者必须在同一个主机名上——这是对你浏览器同源策略的限制。

例如,如果您的网络服务位于http://ws.domain.com/report.asmx,而您的页面位于http://domain.com/index.aspx,则不允许直接调用ajax。

您可以通过多种方式解决此问题。一种常见的方法称为 JSON-P,它涉及将 ws 结果作为 js 函数返回,然后将 ws 作为脚本调用。

http://en.wikipedia.org/wiki/JSON#JSONP

【讨论】:

  • 我会调查一下 - 谢谢!我在网上找到了一些关于交叉访问策略文件的信息(主要用于 silverlight 和 flash)。不知道这个能不能用?我尝试使用它们,但不知道是我做错了还是它们不是为此而生的。
【解决方案2】:

您可以使用右键单击 VS 项目 -> 发布来复制文件夹中的所有相关文件。您必须在 IIS 中创建一个 Web 应用程序并为您的 WebService 配置它。如果您没有收到有用的错误消息,请尝试设置

<configuration>
  <system.web>
    <customErrors mode="Off" />
  </system.web>
</configuration>

我希望这会有所帮助,但是您对错误的描述有点模糊......

【讨论】:

  • 谢谢!很抱歉这个模糊的错误信息 - 我没有得到一个传递给你。有了这个问题 - 我仍然可以浏览到服务吗?当我转到website/service.asmx 时,我没有收到错误消息,但是当我尝试用 JS 调用它时,我得到了不好的响应。而且,我知道这很可能是一个真正愚蠢的问题 - 我如何在 IIS 5 中创建 应用程序?这是在我的本地 xp 机器上,但我在网上找到的所有内容都与 IIS 6/7 有关。你知道有什么好的在线资源吗?
  • 嗨,website/service.asmx “工作”并不意味着网络服务正在工作。只有当您可以通过 website/service.asmx 页面测试您的方法时,您才能确定(或构建一个使用 Web 服务的快速 Windows 应用程序)。但你是对的,这听起来很像是 JS 和服务之间的问题。抱歉,在 IIS 5 方面无法为您提供帮助……祝您好运
猜你喜欢
  • 1970-01-01
  • 2020-01-06
  • 1970-01-01
  • 2010-10-25
  • 2017-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-14
相关资源
最近更新 更多