Ошибка MIME сервера IIS в ASP.NET Приложение MVC

#c# #asp.net #asp.net-mvc #iis

#c# #asp.net #asp.net-mvc #iis

Вопрос:

все.

Я создал очень простой ASP.NET Приложение MVC. Все работает нормально. При запуске из IIS Express в Visual Studio все нормально.

Я опубликовал в IIS (Windows 10), и когда я пытаюсь получить доступ к приложению, у меня возникает ошибка в консоли инструментов разработчика:

 GET http://localhost/Content/css/?v=TkaWEc0q1mz3K1xFKH7PU3OH3FTpfcRL8g5pn-9SziE1 net::ERR_ABORTED 403 (Forbidden)
  

Я проверил свою сетевую вкладку и обнаружил, что есть два вызова Content / css и вот их заголовки:

Запрос 1
введите описание изображения здесь

Я провел некоторые исследования по этой проблеме и обнаружил, что некоторые решения. Пока:

В моем IIS для статического содержимого настроен тип MIME для CSS в IIS — text / css, хотя тип содержимого в заголовке — text / html (что я не понимаю, почему)

РЕДАКТИРОВАТЬ: как указано в комментариях, вот мой пакет конфигурации:

 using System.Web;
using System.Web.Optimization;

namespace IoTHub
{
    public class BundleConfig
    {
        public static void RegisterBundles(BundleCollection bundles)
        { 
            bundles.Add(new ScriptBundle("~/bundles/javascript").Include(
                      "~/Scripts/bootstrap.min.js",
                      "~/Scripts/jquery-3.3.1.min.js",
                      "~/Scripts/popper.min.js",
                      "~/Scripts/iothub.js"));

            bundles.Add(new StyleBundle("~/Content/css").Include(
                      "~/Content/css/bootstrap.min.css",
                      "~/Content/css/main.css",
                      "~/Content/css/common.css"));
        }
    }
}
  

Комментарии:

1. можете ли вы опубликовать строку конфигурационного пакета codes?

2. Отредактировано, @HienNguyen

Ответ №1:

Вы можете добавить BundleTable.EnableOptimizations = true;

 public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);

        BundleTable.EnableOptimizations = true;
    }
}
  

и проверьте набор web.config runAllManagedModulesForAllRequests="true"

 <modules runAllManagedModulesForAllRequests="true">
  <remove name="BundleModule" />
  <add name="BundleModule" type="System.Web.Optimization.BundleModule" />
</modules>
  

Комментарии:

1. Это не сработало. Я внес изменения, собрал, опубликовал, перезапустил сервер с этими изменениями, и ничего другого не произошло.

2. можете ли вы перейти с new StyleBundle(«~/Content/ css») на new StyleBundle(«~/Content/ styles»), и вы установили compilation debug=»false»?

3. Эта последняя часть сделала свое дело. Большое вам спасибо! Это, безусловно, будет в моих извлеченных уроках.

Ответ №2:

Попробуйте добавить это в свою веб-конфигурацию

 <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/> 
</system.webServer>
  

Комментарии:

1. Это было не просто это изменение, но оно помогло! Спасибо.