调试HTTP / 1.1 400 Bad Request上的可视Web开发人员Web服务

时间:2012-07-31 12:34:12

标签: c# android .net web-services visual-web-developer-2010

我有一个.net c#mvc3 Web服务应用程序,由可视化Web开发人员2010开发。    我从一个android movile应用程序调用Web服务。    我想从eclipse模拟器测试Web服务。    当我调试webservice应用程序时,通过从Web浏览器调用服务一切正常,但是当我使用模拟器从Android应用程序调用时,得到“HTTP / 1.1 400 Bad Request”。

好奇的是,如果我在我的本地IIS 7上发布Web服务应用程序,一切都不错,虽然我无法调试该服务。

当我使用可视化Web开发人员对服务进行处理时,网页会出现如下地址:

“HTTP://本地主机:1627 / myservice.asmx / myMethod的”

在我的Android应用程序中,我用这样的URL调用该服务:

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

然后我得到“HTTP / 1.1 400 Bad Request”

我真的很感激任何帮助。

感谢。

2 个答案:

答案 0 :(得分:3)

根据Cannot connect ASP.NET development server (VS2010) via IP address

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

答案 1 :(得分:3)

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


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