.net核心框架对我来说还算是新手,并且我对设置IIS 10的经验不是很丰富,并且很难启动和运行它。在服务器端,我正在运行Windows Server2016。已经安装了带有Management Services的IIS 10(请参见下图)和.net Framework 4.6功能(请参见下图)。
安装此软件后,我已经从Web Deploy 3.6下载并安装了Web Deploy软件包(以前我是在安装Web Platform Installer,然后从那里安装Web Deploy)。
重新启动系统后,我已确保服务正常运行(请参见下图)。
一切似乎都是正确的,因此下一步是创建一个IIS网站,我决定将该网站嵌套在默认网站下,如下所示:
该站点指向默认的应用程序池,因为我没有创建一个新的应用程序池。我将应用程序池修改为以下设置:
在尝试将其标识设置为 LocalSystem 之前,我还将其标识更改为 NetworkService 。(见下图)。
我还确保用户IUSR和IIS_IUSRS对网站目录和子目录具有读取,执行和写入权限(请参见下图)。
完成所有操作后,我将安装从.Net Core Hosting Bundle下载的.net核心托管包。
最后在Visual Studio中,我的项目是一个.net core 2.1剃须刀页面项目。发布项目时,我创建了一个配置文件以使用以下设置进行发布:
我的连接验证正常,因此我点击了下一步并使用以下设置设置了下一步:
我保存了配置文件,然后发布它,它运行良好。如果我检查服务器,文件已全部发布,似乎是正确的。但是,如果我尝试导航到页面 http://myserver/BlankLabel/ ,则会收到404错误(请参见下图)。现在,如果我尝试导航到加载正常的默认网站(http://myserver)。
对此我将不胜感激,因为我没有设置经验,并且肯定会丢失一些东西...
参考
Host ASP.NET Core on Windows with IIS
Publishing and deploying a Razor Pages application to IIS on Windows
Deploying .NET Core apps with Visual Studio
更新#1
我试图在“默认网站”下创建一个新网站,并仅添加一个普通的index.htm页以查看是否可以加载。看到它正在运行后,我将我的应用程序发布到了这个新站点(创建了一个临时的第二个配置文件来执行此操作),然后尝试重新加载页面。其结果是,它导致了相同的原始错误(我的index.htm文件仍然与发布的文件一起保留在文件夹中)。然后,我删除了已发布的文件并重新加载,然后再次与index.htm文件一起使用...显然,.net core 2.1项目和IIS对此不满意...
更新#2
我只是想补充一下,AspNetCoreModule已加载,并且也将其设置为启动(请参见下图)。所以我想这只是我以前的更新几秒钟...
更新#3
只需按要求添加web.config文件(我也注意到日志已关闭,我会将它们设置为true,看看是否能给我任何额外的信息):
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\BlankLabel.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
</system.webServer>
</location>
</configuration>
答案 0 :(得分:1)
我建议检查您发布的ASP.NET Core web.config文件并通过设置stdoutLogEnabled=true
启用日志记录。