iis - ASP.net 5 自托管在 Live Windows Server 上 - EACCES 权限被拒绝?

标签 iis webserver asp.net-core iis-8 self-hosting

我的印象是我们实际上可以在实时服务器上运行一个控制台应用程序来监听和提供数据(如果是为了这个目的的网页)。这样,我们就不必在 IIS 上托管我们的 Web 应用程序。我一直认为这就是“在您自己的进程中托管 Web 应用程序”的意思。

这是我认为相关的 project.json 的一部分:

  "dependencies": {
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final"
  },

  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel --server.urls http://localhost:5010"
  },

如果我进入命令提示符,dir 到项目的根目录,然后运行 ​​dnx web,是的,确实,控制台应用程序正在运行,我可以进入我的浏览器并输入 http://localhost:5010并查看网站。

但是,当我将该 url 更改为实际 url 时(是的,我已经将 DNS 指向该 url 的服务器),我会收到错误 EACCES permission denied .

如果我们可以“自托管”但只能使用本地主机,那似乎只对本地开发有利。为什么有能力“在我自己的进程中自托管”
如果它不能用于现场/制作?

我需要做什么?我需要为特定文件夹设置一些权限吗?哪个用户/组,哪个权限,哪个文件夹?我在项目的根目录上尝试了 IIS_IUSRS,当然,这不起作用,因为无论如何我都想绕过 IIS。

任何帮助将不胜感激。

最佳答案

对于以后发现这个问题的任何人:

当您启动 Kestrel 服务器时,您需要确保该端口上还没有监听,否则将无法启动。如果您尝试在标准 http(端口 80)上托管某些内容,IIS 是一个明显的罪魁祸首。您要么需要停止在该端口上运行的任何其他内容,要么使用它将流量转发到您的 Kestrel 服务器。

有关在 IIS 中直接托管 ASP.NET 5 项目的更多信息,请访问:https://docs.asp.net/en/latest/publishing/iis.html

关于iis - ASP.net 5 自托管在 Live Windows Server 上 - EACCES 权限被拒绝?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34344731/

相关文章:

ios - 在 iOS 中向接受客户端证书的 Web 服务器发出 Web 请求

iis - Web部署可以创建IIS站点和应用程序池吗

php - 安全网络连接(例如 SSL)由 Web 服务器处理,对吗?

c# - 使用 IPageRouteModelConvention 时获取版本

windows - Visual Studio 2015 Update 1 - 调试时没有 IIS Express 响应

node.js - 将 NextJs 托管到 IIS

nginx - Nginx/Web 服务器术语中的 "Reverse Proxy"和 "Load Balancing"是什么?

mysql - 从文件而不是从 MySQL 读取有什么不同吗?

macos - 我们可以在 mac OS X 中创建 asp 5 应用程序而不使用 mono 吗?

c# - 如何在 ASP.NET Core 中默认使用不记名 token 保护所有 Controller ?