我有一个使用Visual在IIS上正确运行的ASPNet核心应用程序。
我尝试将此应用程序部署到IISServer8.5(带有文件文件夹)上。如果我访问根URI (/),我的页面将正确显示(状态200)。但是,如果我尝试访问其他URI (例如: /Meetings),就会得到404个错误。
另一件事是,我尝试将应用程序池的标识更改为管理员,并且它可以工作。但我知道这不是最好的实践,我也找不出为什么它不使用应用程序池身份。
在下面的一些配置中,询问我是否需要特定的文件:
web.config:
<configuration>
<!-- To customize the asp.net core module uncomment and edit the following section.
For more info see https://go.microsoft.com/fwlink/?linkid=838655 -->
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<handlers>
<remove name="aspNetCore"/>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" />
</system.webServer>
</configuration>访问日志:
2018-07-18 13:14:08 ::1 GET /Meetings - 80 - ::1 Mozilla/5.0+(Windows+NT+6.3;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/67.0.3396.99+Safari/537.36 - 404 0 0 1422
2018-07-18 13:22:54 ::1 GET / - 80 - ::1 Mozilla/5.0+(Windows+NT+6.3;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/67.0.3396.99+Safari/537.36 - 200 0 0 1841应用程序池配置:

我还尝试将权限更改为文件夹,但不起作用。
如果有人已经有了这个问题,我准备尝试不同的解决方案。
谢谢,
编辑:
下面是404错误的详细日志:https://paste.ee/p/4PBzY
编辑2:
我已经在windows事件中找到了这个信息,但是我有一个连接字符串,我的Server与本地帐户混在一起。

发布于 2018-07-19 09:32:16
好吧,我终于找到问题出在哪里了。
在查看事件查看器之后,我看到应用程序试图使用ApplicationPoolIdentity连接到我的Server,就像您在下面的屏幕上看到的那样(对不起,法语屏幕)

因此,我刚刚将这个用户添加到具有数据库权限的SQL Server中,并按照Mehmood的建议进行配置(请参阅其他答案),现在它开始工作了!

发布于 2018-07-18 17:16:48
确保您执行了以下步骤:
No Managed codeIIS AppPool\{AppPoolName}必须具有已发布网站文件夹的读取权限。将应用程序池的标识更改为ApplicationPoolIdentity.对于应用程序池标识,将有名为IIS AppPool\{Applicaiton Pool name}的用户帐户,例如,对于DefaultAppPool,用户帐户是IIS AppPool\DefaultAppPool,因此您可以允许在已发布的应用程序文件夹上对应用程序池用户进行读写访问。

https://stackoverflow.com/questions/51403251
复制相似问题