ASP.NET Core 404错误(转自其它网站)

使用IIS时我得到了404。我按照正确的程序发布(这里)和部署,详见此处

花了一些时间才弄明白,但我最终在Rick Strahl博客文章中找到了答案

基本上,在创建应用程序池时,以及将其设置为“No Managed Code”时,我还需要进入高级设置并将应用程序池标识设置为“网络服务”。它在我的机器上的ApplicationPoolIdentity下很好,但在我部署到的机器上却没有。

在此处输入图像描述

因此,为清楚起见,我的完整程序是:

要创建包:

  1. 创建dotnet核心网站(我使用Visual Studio 2017)
  2. 发布。可以使用VS的发布功能,但我通过包管理器使用了CLR。命令是:

    dotnet发布-c发布-r win-x64 - 自包含

我不得不使用win-x64标识符,因为我们必须与64位Windows Server 2008兼容。

部署:

  1. 在C:\ inetpub \ wwwroot中创建一个文件夹(例如'testsite')
  2. 获取发布文件夹({root} \ bin \ Release \ netcoreapp2.1 \ win-x64 \ publish)的内容并将其复制到新的“testsite”文件夹(或等效文件夹)。
  3. 在主机上安装dotnet核心运行时(不是SDK!)。
  4. 打开IIS。右键单击“应用程序池”,然后“添加应用程序池”。创建一个.NET CLR版本设置为“无托管代码”。
  5. (我的机器不需要这一步,但服务器确实这样做了。)再次点击应用程序池。右键单击新的应用程序池,然后选择“高级设置”。将身份更改为“网络服务”(如上图所示)。
  6. 返回顶级IIS,展开“默认网站”,右键单击您网站的文件夹,然后选择“转换为应用程序”。选择没有托管代码的新应用程序池。
  7. 以管理员身份打开命令提示符iisreset您应该在安装dotnet核心运行时之后第一次需要这个。
  8. 访问该网站(例如http:// localhost / testsite

转自 https://stackoverflow.com/questions/38529123/asp-net-core-404-error-on-iis-10

猜你喜欢

转载自www.cnblogs.com/whatme/p/10031214.html
今日推荐