【问题标题】:call asp.net webservice on localhost在 localhost 上调用 asp.net Web 服务
【发布时间】:2012-12-06 04:06:12
【问题描述】:

我接到了一项任务,我必须为一个也使用 Web 服务的 ASP.NET 网站编写一些代码。

网络服务在网络服务器上运行良好,但是当我在 Visual Studio 中以调试模式运行时,调用其中一种方法(ip 127.0.0.1)时出现不允许访问。

我需要在调试模式下运行才能查看代码的作用...

从这里做什么?

  1. 是否需要对主机文件进行一些更改。
  2. 我是否需要在我的 PC 上安装 IIS 而不是使用 VS 本地网络服务器 (cassini)

【问题讨论】:

  • 当我需要这样做时,我会运行两个 Visual Studio 实例。一旦运行 web 服务(在 cassini 中)和一个运行我的 asp.net 页面。当您在 cassini 中运行 web 服务时,您应该有一个类似于 localhost:9090 的路径,您可以将您的 asp.net 应用程序指向该路径。我认为在 web.config 中它包含 Web 服务的 uri。
  • 我发现我需要以管理员身份运行IIS和VS来调试服务。
  • 您能否提供有关“不允许访问”错误的更多详细信息?什么 HTTP 错误代码?
  • Http 错误 401 - 问题是我需要给运行 web 服务的人(不是我编码的)一个 IP 以允许调用,而 127.0.0.1 不起作用,因为他们需要一个单独的IP。是否可以使用特定 IP 进入调试模式?

标签: asp.net web-services iis localhost asmx


【解决方案1】:

Cassini 非常适合开发和快速运行。

从不使用它来测试将在“真实”IIS 上投入生产的东西。

是的,微软说它完全一样,但是在您的本地计算机上运行的 IIS 也为您提供完全与任何实时托管环境相同的环境。

当然,它需要做更多的工作,但以这种方式开发可以减少错误和伪影,这可能会占用您一些时间。

【讨论】:

    【解决方案2】:

    Cassini 网络服务器不允许远程连接。对于某些给定的请求,您可以使用 Fiddler 将 localhost 上的流量转发到同一台机器上的另一个端口。

    到目前为止,最简单的解决方案是在本地计算机上安装 IIS 并从那里运行它。

    【讨论】:

      猜你喜欢
      • 2013-09-23
      • 1970-01-01
      • 2021-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-05
      相关资源
      最近更新 更多