.net core 使用IIS作为宿主Web服务器,部署常见问题,JoeyChou

.net core 使用IIS作为宿主Web服务器,部署常见问题

按照上一篇文章

ASP.NET Core 使用IIS作为Web服务器,部署在IIS上(http://www.joeychou.me/blog/60.html)

所做的步骤部署完毕后,启动网站

1.出现

An error occurred while starting the application.

.NET Core X64 v4.1.1.0 | Microsoft.AspNetCore.Hosting version 1.1.0-rtm-22752 | Microsoft Windows 6.3.9600

解决方案:在网站根目录下新建logs文件夹,再次启动网站,系统会把报错信息下入logs文件夹的日志中去

可以查看日志的错误信息

2.用户 'IIS APPPOOL\***' 登录失败

网站对应的应用程序池:高级设置,看到有一个节点叫“进程模型”,修改标示一项,为LocalSystem。


关于默认的LocalSystem 和 ApplicationPoolIdentity的区别,详见https://www.cnblogs.com/zgqys1980/p/3862815.html


3.System.Data.SqlClient.SqlException (0x80131904): 无法打开登录所请求的数据库 "IdentityServer4_Demo"。登录失败。

用户 'NT AUTHORITY\SYSTEM' 登录失败。

如果我们使用了sqlserver数据库,应用程序默认会使用数据库中的"NT AUTHORITY\SYSTEM"这个帐号进行登录

解决方案:


我的电脑-->右键-->管理-->本地用户和组 选择“组”-->双击Administrators-->单击“添加”-->单击“高级”-->单击“立即查找”-->在下面的列表中选择Network Service用户-->两次单击“确定”-->加入。


给予NT AUTHORITY\SYSTEM权限,使用windows验证方式登录数据库后->安全性->登录名,找到该登录名

右键修改,选择服务器角色,授予该登录名sysadmin这个角色。



swagger打不开的情况,可能是环境变量造成的,输入cmd,设置环境变量为线上即可访问set ASPNETCORE_ENVIRONMENT=Development

至此,问题解决。