[英]Asp.Net vNext self-hosting within existing application
我已經在這個問題上找到了答案,但是到目前為止我還沒有看到任何答案。
我們正在考慮向現有的Windows Services / WPF EXE添加一些報告。 理想情況下,我們會自行托管一個小的vNext應用程序,該應用程序將公開我們的應用程序可以使用的報告端點。 這可以通過OWIN和ASP.NET 4實現。
vNext甚至可以實現這一點嗎?
我已經嘗試了一些樣本等,而K Runtime似乎顯然是與CLR不同的運行時。 構建等也是完全不同的...所以我想至少它必須是一個完全獨立的過程....或者我是在咆哮錯誤的樹?
特別是看起來我們需要調用K運行時(k web或elsed ak pack'ed .cmd),因為我已經在我正在運行的進程(主要的exe / service)中,這似乎是coutner直觀的。
編輯:我想知道答案是NoWin ,引用並提供OWIN容器。 我正在努力想看看這是不是最好的方法......
這里有一個可能的解決方案: 如何在Windows服務中運行DNX應用程序以及如何 在Windows服務 中托管ASP.NET,這要歸功於Erez Testiler。
基本上這個想法是添加以下引用:
然后以編程方式配置並啟動Server和ASP.NET:
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting;
using Microsoft.AspNet.Hosting.Internal;
using Microsoft.Framework.Configuration;
using Microsoft.Framework.Configuration.Memory;
using Microsoft.Framework.DependencyInjection;
using System;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
....
private readonly IServiceProvider _serviceProvider;
private IHostingEngine _hostingEngine;
private IDisposable _shutdownServerDisposable;
public Program(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
}
protected override void OnStart(string[] args)
{
var configSource = new MemoryConfigurationSource();
configSource.Add("server.urls", "http://localhost:5000");
var config = new ConfigurationBuilder(configSource).Build();
var builder = new WebHostBuilder(_serviceProvider, config);
builder.UseServer("Microsoft.AspNet.Server.Kestrel");
builder.UseServices(services => services.AddMvc());
builder.UseStartup(appBuilder =>
{
appBuilder.UseDefaultFiles();
appBuilder.UseStaticFiles();
appBuilder.UseMvc();
});
_hostingEngine = builder.Build();
_shutdownServerDisposable = _hostingEngine.Start();
}
對我來說這似乎是一個很好的解決方案。
好的,我在jabbr.net上花了一些時間,並從一個很棒的@dfowl得到了一些幫助,並且有一個很有幫助的,如果相當簡陋的年輕開發者(那些日子)。
@dfowl:那個場景已經死了
我認為我們的Windows服務/ WPF在CLR下運行,而vNext在CLR下運行,它們是不同的運行時。
有一個辦法做到這一點,基於舊版本的K個運行時,它的呃,有毛。 文件可能,但從來沒有你投入生產的東西:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.