C # .NET MVC - ошибка HTTP 403.14 - Запрещено Веб-сервер настроен так, чтобы не перечислять содержимое этого каталога. - PullRequest
2 голосов
/ 03 октября 2019

В корневом каталоге проекта MVC есть файл Startup.cs.

Я включил просмотр каталогов. Но при запуске проекта отображается следующий экран. Надеюсь, в проекте MVC нет необходимости устанавливать страницу по умолчанию. Я также попытался добавить Startup.cs в документе по умолчанию (IIS), но он выдает ошибку «Отказано в расширении». Попытался добавить расширение .cs в файл ApplicationHost.config. Но это дает более сложные ошибки.

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 403.14 - Запрещено

Список каталогов и каталог IISпросмотр включен

Ошибка после установки документа по умолчанию для Startup.cs

Ответы [ 3 ]

0 голосов
/ 03 октября 2019

Вам не нужно просматривать каталоги, чтобы отобразить сайт 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 также должны быть включены необходимые сборки.

Редактировать:

После второго взгляда на снимки экрана создается впечатление, что вы добавили весь исходный код из своего проекта на веб-сервер. Это не так, как это работает. Вы должны скомпилировать проект ASP.NET и опубликовать его на веб-сервере (это можно сделать, только скопировав скомпилированный вывод).

Я бы порекомендовал поискать учебник ASP.NET MVC, чтобы получить представление оосновы. И, вероятно, попробуйте с более новой версией IIS = D.

Я только что нашел это, который, кажется, показывает основы: https://www.tutlane.com/tutorial/aspnet-mvc/asp-net-mvc-publish-with-file-system

0 голосов
/ 03 октября 2019

В IIS для обслуживания файлов Если файл представляет собой скрипт, вы должны добавить обработчик, но если файл должен быть загружен, вы должны добавить для него карту MIME. Обратите внимание, что для доступа к любому файлу вы должны включить его расширение (здесь .cs), а затем указать точное имя файла с расширением в URL. Похоже, ваш URL не содержит вашего имени файла. Также будьте осторожны, чтобы ваш файл не находился в скрытом сегменте в конфигурации IIS.

И если вы используете ядро ​​asp.net Некоторые из собственных модулей IIS и все управляемые модули IIS не могут обрабатыватьзапросы на основные приложения ASP.NET. см. здесь (https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/modules?view=aspnetcore-3.0).

Также для доступа к заблокированному файлу вам не нужно включать просмотр каталогов. Этот документ объясняет fileExtensions в 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>
0 голосов
/ 03 октября 2019

Вот полная конфигурация для включения просмотра каталога в asp.net

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