【问题标题】:C#.NET MVC- HTTP Error 403.14 - Forbidden The Web server is configured to not list the contents of this directoryC#.NET MVC-HTTP 错误 403.14 - 禁止 Web 服务器配置为不列出此目录的内容
【发布时间】:2019-10-03 06:11:39
【问题描述】:

MVC项目根目录下有一个Startup.cs。

我启用了目录浏览。但是在运行项目时显示以下屏幕。我希望在 MVC 项目中,不需要设置默认页面。我也尝试在默认文档(IIS)中添加 Startup.cs,但它会引发扩展被拒绝错误。尝试在 ApplicationHost.config 文件中添加 .cs 扩展名。但它会给出更复杂的错误。

Web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
        <defaultDocument enabled="true" />
        <directoryBrowse showFlags="Date, Time, Size, Extension, LongDate" />
  </system.webServer>  
</configuration>

HTTP Error 403.14 - Forbidden

Directory Listing and IIS Directory browsing enabled

Error after setting default document to Startup.cs

【问题讨论】:

  • 我最近收到了这个。在我的情况下,在 url 之后添加文件名。例如:localhost:4351 到 localhost:4351/index.aspx。你有很多页面,所以在 url 之后写下你的“起始页”
  • 当我尝试localhost:49592/Startup.cs时,它显示请求过滤模块被配置为拒绝文件扩展名。

标签: c# asp.net asp.net-mvc asp.net-mvc-4


【解决方案1】:

您无需浏览目录即可显示 ASP.NET MVC 站点。

但看起来您有一个非常旧的网络“服务器”。您必须做的一件事是安装 DotNetCore.2.0.0-WindowsHosting.exe(看起来您创建了一个 ASP.NET Core MVC 站点)。 看本页末尾:https://github.com/dotnet/core/blob/master/release-notes/download-archives/2.0.0-download.md

web.config 还必须包含所需的程序集。

编辑:

再次查看屏幕截图后,您似乎已将项目中的所有源代码添加到 Web 服务器。这不是它的工作原理。 您必须编译 ASP.NET 项目并将其发布到 Web 服务器(只需复制已编译的输出即可完成)。

我建议寻找 ASP.NET MVC 教程来掌握基础知识。并且可能尝试使用更新版本的 IIS =D。

我刚刚发现这似乎显示了基础知识: https://www.tutlane.com/tutorial/aspnet-mvc/asp-net-mvc-publish-with-file-system

【讨论】:

  • 我是asp.net的新手,你能指导我让项目运行吗?我安装了 AspNetCore.2.0.0.RuntimePackageStore_x64.exe……我必须在 web.config 文件中进行哪些更改
  • 试试我添加的教程。它应该可以帮助您完成第一部分。
  • 当我创建一个新项目时,它按预期工作。但我想运行现有的项目。有没有办法做同样的事情?
  • 用我们掌握的信息是无法回答的。但我可以建议您将旧代码移至新代码。如果这不起作用,请一次移动一部分代码,以便您知道它何时停止工作。
【解决方案2】:

这里是启用asp.net目录浏览的完整配置

https://docs.microsoft.com/en-us/iis/configuration/system.webserver/directorybrowse

【讨论】:

  • 我之前完全一样。但仍然有 sam 错误
【解决方案3】:

在 IIS 中用于提供文件 如果文件是脚本,则应添加处理程序,但如果应下载文件,则必须为其添加 MIME 映射。请注意,要访问任何文件,您应该启用其扩展名(此处为 .cs),然后在 URL 中引用带有扩展名的确切文件名。似乎您的 URL 不包含您的文件名。还要注意您的文件不要位于 IIS 配置中的隐藏段中。

如果您使用的是 asp.net core 一些本机 IIS 模块和所有 IIS 托管模块无法处理对 ASP.NET Core 应用程序的请求。请看这里 (https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/modules?view=aspnetcore-3.0)。

对于访问被阻止的文件,您也不需要启用目录浏览。 该文档解释了 iis 中的文件扩展: https://docs.microsoft.com/en-us/iis/configuration/system.webserver/security/requestfiltering/fileextensions/

您的案例可以正常使用此配置:

 <system.webServer>
 <staticContent>
        <mimeMap fileExtension=".cs" mimeType="text/plain" />
 </staticContent>
 <security>
    <requestFiltering>
        <fileExtensions>
                <remove fileExtension=".cs" />
                <add fileExtension=".cs" allowed="true" />
          </fileExtensions>
     </requestFiltering>
 </security>
</system.webServer>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-09
    • 2015-02-05
    • 2013-07-11
    • 1970-01-01
    • 2022-12-13
    相关资源
    最近更新 更多