#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 и вот их заголовки:
Я провел некоторые исследования по этой проблеме и обнаружил, что некоторые решения. Пока:
В моем 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. Это было не просто это изменение, но оно помогло! Спасибо.