Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使ASP.NET Web API Web服务在本地网络中可用_Android_Asp.net_Web Services_Visual Studio_Iis - Fatal编程技术网

Android 如何使ASP.NET Web API Web服务在本地网络中可用

Android 如何使ASP.NET Web API Web服务在本地网络中可用,android,asp.net,web-services,visual-studio,iis,Android,Asp.net,Web Services,Visual Studio,Iis,我即将编写一个JSON web服务(VS Express 2012-ASP.NET web API),现在我想通过尝试从我的Android应用程序获取数据来测试它。因此,我尝试通过以下方式为本地网络提供服务: ->在applicationhost.config <site name="MyFirstWebApi" id="5"> <application path="/" applicationPool="Clr4IntegratedAppPool">

我即将编写一个JSON web服务(VS Express 2012-ASP.NET web API),现在我想通过尝试从我的Android应用程序获取数据来测试它。因此,我尝试通过以下方式为本地网络提供服务:

->在
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>

->并且还将项目属性->Web->使用本地IIS Web服务器->项目url更改为
http://192.168.1.52:61802/

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

无法启动IIS Express Web服务器 (翻译自德语)

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


有人知道如何修复该问题或如何正确设置吗?

IIS Express默认情况下不允许“远程”连接。。。这篇文章向你展示了该做什么:

一旦你这样做了,你应该能够从网络中的任何其他计算机连接

此外,请确保打开防火墙中的端口

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

希望有帮助,
Daniel.

您好,请从ApplicationHost.config中删除IP名称

创建虚拟目录并发布webservice文件

设置IP地址: -在“默认网站”中单击鼠标右键 -编辑装订 -分配IP地址

重新启动IIS


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

您可以运行脚本使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进行依赖项注入,这与此有很好的关联,请参见指南


现在运行控制台项目(设置为启动项目或右键单击>调试>启动新实例)。

是否检查了Windows事件日志?是否,但是找不到与我的问题相关的内容:/请参阅此处的帖子-这些步骤应该可以解决您的问题。您是否可以尝试在调试模式下使用集成服务器运行应用程序,并查看是否存在任何错误?它可以揭示IIS和IIS Express没有的地方。您的防火墙打开了吗?关闭,或为应用程序打开端口我想这是最好的解决方案,但它给了我一个错误
Create SDDL failed,error:1332参数不正确。
尝试了以下方法:
netsh http add urlacl url=http://localhost:8080/ user=everyone
这对我来说很好。。。但有些人报告说,当你在用户名周围使用引号时,它会起作用。像这样:
netsh-http-add-urlacl-url=http://+:8080/user=“Everyone”
这可能是一个解决方案,但它需要一些时间