我在VS2019预览版上开发了此Asp.net Core 3.1。 基本上,这是一个具有引用程序集和一些nuget的出色服务器端应用程序。
发布到文件夹后,它在VS2019和我的IIS上运行良好。 问题是当我将该文件夹移动到安装了IIS的Windows Server计算机以及所有内容时。 出现500码错误。
我在这里注意到的一件事..服务器中的log_error.txt文件指出了一个异常 ,并且该异常-不论它是什么都显示了startup.cs文件的错误行以及我的笔记本电脑目录路径!
我的意思是它显示了此C:/mrmeeez/..../Startup.cs line 411
但是Windows服务器计算机中不存在此路径
应该是F:/.... somthing/Startup.cs line 411
我还是不知道是否也与问题有关..或者我的程序集和nuget无法正确地运送到服务器
Windows服务器计算机运行正常,我尝试使用blazor应用程序模板,并且运行完美。 我需要你们的帮助,谢谢!
答案 0 :(得分:-1)
好,我找到了
我不确定这是否与asp.net core 3.1有关 因为我几个月前就部署了asp.net core 2.1,所以很好
无论如何,我在最终发布中使用了开发异常页面来查看导致错误的原因并显示了此信息
UnauthorizedAccessException:对路径'C:\ Windows \ system32 \ config \ systemprofile \ AppData \ Local \ ASP.NET \ DataProtection-Keys'的访问被拒绝。
搜索之后,我在github中找到了一个人的答案 似乎该应用程序池的用户IIS_IUSRS(默认情况下)没有访问该路径的权限
要解决此问题,请选择以下两个之一:
1-授予IIS_IUSRS访问系统文件的权限-未推荐-
2-将您的应用程序池的用户更改为IIS中的LocalSystem帐户,方法是转到应用程序池->右键单击您的应用程序->高级设置->流程模型部分,然后更改标识 < / p>
参考:https://github.com/dotnet/aspnetcore/issues/1983
谢谢!