Posinformatique.aspnetcore.server.aspnet -это библиотека для размещения asp .net Core Web API на неядерном (WebForms и MVC) на основе фреймворка .NET.


Posinformatique.aspnetcore.server.aspnet -это неточный IHttpHandler ASP .NET, который выполняется в зависимости от настроенных маршрутов в неточной инфраструктуре ASP .NET. Когда называется внутренняя реализация posinformatique.aspnetcore.server.aspnet IHttpHandler , http -запрос отправляется в инфраструктуру Core Core ASP .NET, которая выполняет запрос с тем же поведением, если он был размещен в выделенном IIS, консольном или Kestrel Host.
Posinformatique.aspnetcore.server.aspnet доступен непосредственно на официальном сайте Nuget. Чтобы загрузить и установить библиотеку в свой проект Visual Studio, используя следующую командную строку Nuget
Install-Package PosInformatique.AspNetCore.Server.AspNet
В New ASP .NET WEB FORDS/MVC NON-ядерный проект Установите инфраструктуру ASP .NET CORE 2.X с использованием следующей команды NUGET:
Install-Package Microsoft.AspNetCore
Install-Package Microsoft.AspNetCore.Mvc
После добавления пакета posinformatique.aspnetcore.server.aspnet в ваш неточный проект MVC или MVC, Inside Application_Start вашего класса HttpApplication и запустите ядро asp .net Core IWebHost Encemts, используя классический WebHost.CreateDefaultBuilder() и соответствующий API ( Startup Class, дополнительные сервисы, ...). Вместо этого выбирать Kestrel или IIS для размещения вашего приложения ASP .NET Core, вызовите метод UseAspNet() чтобы разместить ваше приложение ASP .NET CORE в неядерной инфраструктуре ASP .NET.
UseAspNet() требует определения базовых маршрутов, которые будут перехвачены и обрабатываются с помощью основной инфраструктуры ASP .NET, а не ASP .NET NON-CORE.
Это пример кода Global.asax.cs , который строит, запустите приложение ASP .NET Core и перенаправляйте все запросы, запускаемые от /api и /swagger , в приложение ASP .NET Core:
public class Global : System . Web . HttpApplication
{
protected void Application_Start ( object sender , EventArgs e )
{
WebHost . CreateDefaultBuilder ( )
. UseAspNet ( options =>
{
options . Routes . Add ( "api" ) ;
options . Routes . Add ( "swagger" ) ;
} )
. UseStartup < Startup > ( )
. Start ( ) ;
}
} Вы можете настроить свое приложение ASP .NET Core, как обычно, с классом Startup , зарегистрировав дополнительные службы. Это пример класса Startup , который зарегистрирует инфраструктуру MVC Core ASP .NET и расширения Swashbuckle.aspnetCore, чтобы добавить документацию с использованием пользовательского интерфейса Swagger.
public class Startup
{
public Startup ( IConfiguration configuration )
{
Configuration = configuration ;
}
public IConfiguration Configuration { get ; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices ( IServiceCollection services )
{
services . AddMvc ( ) ;
services . AddSwaggerGen ( c =>
{
c . SwaggerDoc ( "v1" , new Info { Title = "My API" , Version = "v1" } ) ;
// Set the comments path for the Swagger JSON and UI.
var xmlFile = $ " { Assembly . GetExecutingAssembly ( ) . GetName ( ) . Name } .xml" ;
var xmlPath = Path . Combine ( AppContext . BaseDirectory , "bin" , xmlFile ) ;
c . IncludeXmlComments ( xmlPath ) ;
} ) ;
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure ( IApplicationBuilder app , IHostingEnvironment env )
{
if ( env . IsDevelopment ( ) )
{
app . UseDeveloperExceptionPage ( ) ;
}
app . UseMvc ( routes =>
{
routes . MapRoute (
name : "default" ,
template : "{controller=Home}/{action=Index}/{id?}" ) ;
} ) ;
// Enable middleware to serve generated Swagger as a JSON endpoint.
app . UseSwagger ( ) ;
// Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),
// specifying the Swagger JSON endpoint.
app . UseSwaggerUI ( c =>
{
c . SwaggerEndpoint ( "/swagger/v1/swagger.json" , "My API V1" ) ;
} ) ;
}
} Вы должны использовать только компоненты и обслуживание ядра ASP .NET в реализации вашей контроллеров. Избегайте доступа к компонентам или службам ASP .NET NON-CORE из реализации ваших контроллеров. Например, не забудьте получить доступ к основному HttpContext ASP .NET в коде вашего контроллеров и не используйте неточный HttpContext ASP .NET.

Как показано на предыдущем рисунке архитектуры, в коде контроллеров вы должны использовать только для API ASP .NET CORE, даже вы можете получить доступ к нетоловым инфраструктуре ASP .NET API.
Поскольку ASP .NET CORE 3.X основано только на среде выполнения .NET CORE 3.0 (а не на .NET STANTARD 2.0, как и в случае с ASP .NET CORE 2.X), эта библиотека не может использоваться для размещения веб-API CORE 3.x CORE 3.x на неядерной инфраструктуре ASP .NET.
В настоящее время posinformatique.aspnetcore.server.aspnet может работать только с необработанной инфраструктурой Core ASP .NET Core и для реализаций Controllers Web API. Невозможно использовать эту библиотеку с видами Razor MVC, потому что проект Visual Studio использует неточный веб-компилятор ASP .NET.
Не стесняйтесь клонировать мой код и отправить некоторые изменения ... это проект с открытым исходным кодом, поэтому все могут улучшить эту библиотеку ... кстати, я француз ... так что, возможно, вы замечаете, что мой английский не совсем свободно ... так что не стесняйтесь исправить свои строки ресурсов или мою документацию ... Merci!
Я хочу поблагодарить компанию Dileitrust за то, что он проверил и дал мне их отзыв об этой библиотеке для их приложений ASP .NET Webforms, которые встраивали API, разработанные в ASP .NET Core Web.