Папка App_Start в ASP 4.5 только в проектах WebApplications?
У меня есть проект веб-сайта, который я преобразовал в .NET 4.5. Я хотел бы использовать AuthConfig, который я видел, добавленный в каталог App_Start. Несколько вопросов.
Доступен ли каталог App_Start только для проектов веб-приложений?, Когда я пытаюсь добавить существующую папку asp.net, я не вижу ее в качестве опции для добавления.
Во-вторых, могу ли я создать файл AuthConfig в любом месте моего веб-сайта, если это так?
Ответы
Ответ 1
В App_Start нет ничего особенного, это просто папка. Что особенного в том, как он используется, и специфичен для платформы WebActivator, которая представляет собой пакет NuGet, который вы можете установить. App_Start и WebActivator не относятся к .NET 4.5, но для них требуется .net 4 (что означает VS 2010 или 2012)
См. http://blog.davidebbo.com/2011/02/appstart-folder-convention-for-nuget.html
Ответ 2
Папка App_Start была представлена как часть шаблонов MVC4. В этом нет ничего особенного, что приводит к тому, что код будет выполняться в нем по соглашению. Например, шаблон SPA HotTowel создает в папке App_Start следующее:
![TODO diagram]()
Код в App_Start выполняется global.asax.cs, как показано ниже.
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
AuthConfig.RegisterAuth();
}
Ответ 3
Хотя Нет ничего особенного в App_Start, но вы можете делать файлы insinde, эта папка выполняется, когда приложение запускается как Application_Start
внутри Global.asax
. Я использую Ninject зависимый инжектор в моем проекте с папкой App_Start
. В моем проекте нет файла Global.asax:
![enter image description here]()
но вся конфигурация i, установленная в файле NinjectWebCommon
, будет запущена при запуске приложения. NinjectWebCommon
имеет следующее содержание:
using WebFormNinject.Models;
[assembly: WebActivator.PreApplicationStartMethod(typeof(WebFormNinject.App_Start.NinjectWebCommon), "Start")]
[assembly: WebActivator.ApplicationShutdownMethodAttribute(typeof(WebFormNinject.App_Start.NinjectWebCommon), "Stop")]
namespace WebFormNinject.App_Start
{
using System;
using System.Web;
using Microsoft.Web.Infrastructure.DynamicModuleHelper;
using Ninject;
using Ninject.Web.Common;
public static class NinjectWebCommon
{
private static readonly Bootstrapper bootstrapper = new Bootstrapper();
/// <summary>
/// Starts the application
/// </summary>
public static void Start()
{
DynamicModuleUtility.RegisterModule(typeof(OnePerRequestHttpModule));
DynamicModuleUtility.RegisterModule(typeof(NinjectHttpModule));
bootstrapper.Initialize(CreateKernel);
}
/// <summary>
/// Stops the application.
/// </summary>
public static void Stop()
{
bootstrapper.ShutDown();
}
/// <summary>
/// Creates the kernel that will manage your application.
/// </summary>
/// <returns>The created kernel.</returns>
private static IKernel CreateKernel()
{
var kernel = new StandardKernel();
kernel.Bind<Func<IKernel>>().ToMethod(ctx => () => new Bootstrapper().Kernel);
kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();
RegisterServices(kernel);
return kernel;
}
/// <summary>
/// Load your modules or register your services here!
/// </summary>
/// <param name="kernel">The kernel.</param>
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<IDisplay>().To<MockDisplay>();
}
}
}
Мне было любопытно, где будет выполняться функция RegisterServices
! Затем я заметил этот раздел кода:
[assembly: WebActivator.PreApplicationStartMethod(typeof(WebFormNinject.App_Start.NinjectWebCommon), "Start")]
[assembly: WebActivator.ApplicationShutdownMethodAttribute(typeof(WebFormNinject.App_Start.NinjectWebCommon), "Stop")]
Эти атрибуты делают метод Start
, выполняемый при запуске приложения. Для получения дополнительной информации см. WebActivator/PreApplicationStartMethod
Ответ 4
Вкратце: Для более глубокого понимания изменений конфигурации в веб-сайтах ASP.NET 4.5 обратитесь к следующему официальному источнику - Конфигурация Изменения в шаблонах веб-сайтов ASP.NET 4.5.
Он проинструктирует вас о каждом изменении, которое произошло в новой версии на веб-сайте ASP.NET, что составляет 4,5
Ответ 5
Если вы хотите настроить карту маршрутизации на новых шаблонах MVC 5, вы можете установить свои маршруты в файле Startup.cs в методе Configure.