是否可以在Windows桌面应用程序中使用不带IIS的ASP.NET Core Web API?

时间:2016-08-11 21:57:02

标签: .net iis asp.net-core desktop-application kestrel-http-server

目前,我正试图找到一种方法来构建一个托管浏览器窗口的桌面应用程序,并使用JavaScript与本地ASP.NET Core Web API进行通信,作为&#34;后端&#34;:< / p>

enter image description here

我的所有搜索都会提示我应该使用IIS Express网络服务器。

不幸的是,IIS Express 适合我的场景,因为我希望整个应用程序可由非管理员用户安装和运行。

由于IIS Express需要管理权限才能安装,因此这对我来说是超出范围的。

我的问题:

使用IIS Express运行ASP.NET Core Web API项目还有另一种方法吗?

我已经阅读了Kestrel server哪些似乎成为我正在寻找的东西,但我仍然没有在这里了解全局。

修改1:

我已经问过releated question over at SE Software Recommendations

2 个答案:

答案 0 :(得分:3)

在这种情况下,我确信Kestrel能很好地适合你。它是一个基于libuv的跨平台Web服务器,这意味着它超级快。 official benchmarks显示它的性能超过标准IIS。

答案 1 :(得分:-1)

添加到DavidG的答案。

Kestral是你想要在没有IIS的情况下运行ASP.Net的正确解决方案。

然而,这需要一个开放的TCP端口才能工作。这意味着如果您尝试将Kestral绑定到端口80,并且用户已安装IIS。 Kestral将无法运行。

您可以使用 Katana 将您的网站绑定到IIS中的子目录。不幸的是,这通常需要管理员权限。

总的来说,您基本上可以使用任何所需的OWIN服务器。

您甚至可以根据具体情况选择一些代码来选择使用哪种OWIN服务器。