如何在本地网络中提供ASP.NET Web API Web服务

时间:2013-08-29 19:57:03

标签: android asp.net web-services visual-studio iis

我即将编写JSON-web-service(VS Express 2012 - ASP.NET WEB API),现在我想通过尝试从我的Android应用程序获取数据来测试它。所以我尝试通过这样做来为本地网络提供服务:

- >已在localhost

中从192.168.1.52更改为applicationhost.config
<site name="MyFirstWebApi" id="5">
     <application path="/" applicationPool="Clr4IntegratedAppPool">
         <virtualDirectory path="/" physicalPath="c:\projects\MyFirstWebApi" />
     </application>
     <bindings>
         <binding protocol="http" bindingInformation="*:61802:192.168.1.52" />
     </bindings>
</site>

- &GT;并且还更改了项目属性 - &gt;网络 - &gt; “使用本地IIS-Webserver” - &gt; project-url to http://192.168.1.52:61802/

但是当我现在尝试启动该服务时,它会给我一个错误消息框:

  

无法启动IIS-Express-webserver   (翻译自德语)

不幸的是,我看不出确切的错误是什么,因为VS输出是空的

任何人都知道如何解决这个问题或如何正确设置?

3 个答案:

答案 0 :(得分:5)

IIS Express默认情况下不允许“远程”连接......这篇文章告诉你该怎么做:

IIS Express enable external request

完成此操作后,您应该可以从网络中的任何其他计算机进行连接。

此外,请务必打开防火墙中的端口。

如果这不起作用,我会使用您的本地IIS创建一个站点并以这种方式测试您的服务。

希望它有所帮助, 丹尼尔。

答案 1 :(得分:3)

您可以运行脚本以使IIS Express允许远程连接,但另一种选择是在本地测试时为您的Web api代码使用自主机包装器。我们遇到了同样的问题,并开始使用这种方法。这是你如何做到的:

创建一个新的控制台项目并添加如下代码:

private static void Main()
{

  var config = new HttpSelfHostConfiguration(new Uri("http://localhost:8086"));

  // remove all formatters and only provide json
  config.Formatters.Clear();
  config.Formatters.Add(new JsonMediaTypeFormatter());

  // if needed
  SetupLogging();
  SetupDependencyInjection(config);

  // required for the new Attribute Routing (if you are using it)
  config.MapHttpAttributeRoutes();

  using (var server = new HttpSelfHostServer(config))
  {
    server.OpenAsync().Wait();
    Console.WriteLine("Self Host Server listening on port 8086 ...");
    Console.WriteLine("(You might need administrator privileges)");
    Console.WriteLine("Press Enter to quit.");
    Console.ReadLine();
  }
}

如上所述,请运行具有管理员权限的Visual Studio。

我们正在使用AutoFac进行依赖注入,这很好地与此相关,请参阅指南here

现在运行控制台项目(设置为启动项目或右键单击&gt; debug&gt;启动新实例)。

答案 2 :(得分:1)

嗨请从ApplicationHost.config中删除IP名称。

创建虚拟目录并发布Web服务文件。

设置IP地址: - 右键单击​​“默认网站” - 编辑绑定 - 分配IP地址

重新启动IIS。

浏览“默认网站”它将显示您的IP地址。