5

我有一个 .net c# mvc3 web 服务应用程序开发 wirh visual web developer 2010。我正在从一个 android 移动应用程序调用 web 服务。我想从 Eclipse 模拟器测试 Web 服务。当我通过从 Web 浏览器调用服务来调试 Web 服务应用程序时,一切正常,但是当我使用模拟器从 android 应用程序调用时,会得到“HTTP/1.1 400 错误请求”。

奇怪的是,如果我在本地 IIS 7 上发布 Web 服务应用程序,一切都很好,尽管我无法调试服务。

当我使用可视化 Web 开发人员对服务进行调试时,会出现一个带有如下地址的网页:

“http://localhost:1627/myservice.asmx/myMethod”

在我的 android 应用程序上,我使用这样的 url 调用服务:

“http://10.0.2.2:1627/myservice.asmx/myMethod”

但后来我得到“HTTP/1.1 400 错误请求”

我真的很感激任何帮助。

谢谢。

4

2 回答 2

3

根据无法通过 IP 地址连接 ASP.NET 开发服务器(VS2010)

ASP.NET 开发服务器将为本地计算机上的浏览器请求提供页面。它不会将页面提供给另一台计算机。此外,它不会提供应用程序范围之外的文件。ASP.NET 开发服务器提供了一种在将页面发布到运行 IIS 的生产服务器之前在本地测试页面的有效方法。

于 2012-12-03T08:09:13.413 回答
3

对于 Visual Studio 2010,我一直使用 inetd,它是一个端口转发工具。从 Visual Studio 2012 开始,我也遇到了这个问题。问题是在开发服务器中只允许本地调用,即使代理调用也不起作用,除非您更改请求标头。我对在 GitHub 上找到的现有简单代理服务器进行了一些修改。它将请求 url 中的 IP 地址更改为`localhost。在此处下载代码。


我找到了更好的解决方案。在您的计算机上安装 IIS Express 后,在项目目录的 IIS 中创建一个新应用程序并为其指定一个别名。请注意,设置了正确的应用程序池,您将能够通过http://localhost/YourProject/当您无法从其他计算机连接时浏览您的站点,这可能是防火墙问题。

于 2012-12-03T10:52:48.037 回答