我正在尝试使我们现有的asp.NET core mvc应用程序在azure应用程序服务中运行。部署工作正常,我希望所有文件都在服务器上。
可悲的是,尝试访问该网址后,出现“您无权查看此目录或页面的权限”消息。这是状态码403。
日志提供了更多信息:
<div id="content"><div class="content-container"><h3>HTTP Error 403.14 - Forbidden</h3><h4>The Web server is configured to not list the contents of this directory.</h4></div><div class="content-container"><fieldset><h4>Most likely causes:</h4><ul> <li>A default document is not configured for the requested URL, and directory browsing is not enabled on the server.</li> </ul></fieldset></div><div class="content-container"><fieldset><h4>Things you can try:</h4><ul> <li>If you do not want to enable directory browsing, ensure that a default document is configured and that the file exists.</li> <li> Enable directory browsing using IIS Manager. <ol> <li>Open IIS Manager.</li> <li>In the Features view, double-click Directory Browsing.</li> <li>On the Directory Browsing page, in the Actions pane, click Enable.</li> </ol> </li> <li>Verify that the configuration/system.webServer/directoryBrowse@enabled attribute is set to true in the site or application configuration file.</li>
似乎应该使用诸如index.html之类的登录页面,但对于给定的mvc项目而言,该页面不存在。
我也找不到该配置的任何文档。即使是youtube视频,也展示了托管mvc应用有多么容易,也无需进行任何其他配置。 (例如,这个watch)
如果有人能告诉我我哪里出问题了,我会很高兴。
预先感谢
约书亚
答案 0 :(得分:1)
我已经通过Visual Studio在Azure App Service上部署了.NET Core MVC应用程序,并且可以正常工作。因此,我注意到在此过程中,VS创建了一个 web.config 文件。通过Kudu将其从App Service中删除后,该应用程序停止了。
因此,解决方案是在App Service环境的 wwwroot 文件夹中创建一个 web.config 文件。内容如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\My.Main.Project.dll"
stdoutLogEnabled="false" stdoutLogFile="\\?\%home%\LogFiles\stdout"
hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>
为记录起见,该应用程序是在.NET Core 3.1上创建的。