Android 如何使ASP.NET Web API Web服务在本地网络中可用
我即将编写一个JSON web服务(VS Express 2012-ASP.NET web API),现在我想通过尝试从我的Android应用程序获取数据来测试它。因此,我尝试通过以下方式为本地网络提供服务: ->在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">
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”
这可能是一个解决方案,但它需要一些时间