Tag: kestrel http server

红隼与IIS – 运行时缺少libuv.dll

我们正在设置现有的Web API服务器,以便与现有API一起提供站点。 我一直在松散地阅读这篇文章 。 这是我的Global.asax.cs的样子: public class WebApiApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); AutoMapperConfig.RegisterMappings(); var host = new WebHostBuilder() .UseKestrel() .UseWebRoot(“wwwroot”) .UseIISIntegration() .UseStartup() .Build(); host.Run(); } } 和Startup.cs: public partial class Startup { public void Configure(IApplicationBuilder app) { app.UseDefaultFiles(); app.UseStaticFiles(); } } 当我运行项目时,我收到错误 无法加载DLL“libuv”:找不到指定的模块。 (HRESULTexception:0x8007007E) libuv是Kestrel的依赖。 如果我手动将它从packages文件夹复制到bin文件夹,它可以工作。 这个GitHub问题评论似乎有意义。 现在project.json正在被移走,我怎样才能让它自动复制? […]

Kestrel + IIS反向代理RequestAborted未触发

我们有一个ASP.NET Core 2.x应用程序,它实现了自定义中间件,它充当另一个(基于Java)服务器/应用程序的代理。 此应用程序/中间件的客户端在服务器请求完成之前经常中止/取消其请求是很常见的。 我们已将此应用程序部署到IIS(作为反向代理)并在Kestrel上运行。 在Core 2.x之前,Kestrel有一个错误,导致HttpContext.RequestAborted始终为false ( 这里有其他相关问题)……这显然是在2.x中固定的(我已经能够确认)。 但是,似乎在Kestrel前面运行IIS时,它不会将请求中止转发到Kestrel,而RequestAborted 仍然总是为false 是否有任何方法可以使RequestAborted在此配置中工作(或者,如果没有,还是以其他任何方式检测它)? 简单的复制回购: https : //github.com/mikeomeara1/RequestAbortRepro UPDATE 这个评论似乎表明了一个已知的问题,但在很大程度上还不清楚 这个问题似乎也是相关的,但对我来说,它并不完全明显,它是直接相关的(至少它没有用这样的术语拼写)。 @spender – 如果我理解正确,标题比较就在这里 。 如果没有,请告诉我,我会告诉你任何你想看的东西。 茶叶似乎表明了一个已知的问题。 所以,问题是; 有办法解决这个问题吗? 我们刚刚经历了(一次非常痛苦的)1.1到2.x的升级,希望这个问题得到解决,让我们的服务器闯入另一个月/季度/年让我们非常关注这一点。 我们正在研究的系统在数量上大大增加。 因此,欢迎任何变通方法,黑客或疯狂的想法。

修改ASP.NET Core中的静态文件响应

我通过app.UseStaticFiles()在我的应用程序中提供了一堆静态文件。 我希望在发送之前为特定HTML文件的响应注入一些额外的标记。 我的第一次尝试是在静态文件中间件之前添加这样的中间件: app.Use(async (context, next) => { await next(); // Modify the response here }); 但是,这不起作用,因为我实际上无法读取读取响应流 – 它使用了引擎盖下的Kestrel的FrameResponseStream ,这是不可读的。 所以,我想我可以用我可以写入的MemoryStream替换响应体流: app.Use(async (context, next) => { context.Response.Body = new MemoryStream(); await next(); // Modify the response here }); 但这只会导致请求永远不会完成 – 它会遍历所有管道阶段,但它甚至都不会向浏览器返回任何标头。 那么,有什么办法可以修改StaticFileMiddleware产生的响应吗? 更新 由于所讨论的HTML文件很小(765字节),因此不需要考虑内存消耗。 但是,任何读取/修改响应的尝试仍会导致与以前相同的问题(不返回任何内容)。 更明确地说,这是做什么的: app.Use(async (context, next) => { var originalStream = context.Response.Body; […]

ASP.NET 5 Kestrel在LAN内连接

我想从同一网络中的另一台PC上连接到我的Kestrel服务器,其中包含ASP.NET 5应用程序。 可能吗? 我可以从cmd ping我的电脑,但是当我尝试从网络浏览器连接时,我得到’连接超时’(我输入:“http:// {my_kestrel_ip}:5000 /”)。

为HTTPS配置ASP.NET Core 2.0 Kestrel

TL; DR今天使用ASP.NET Core 2.0设置HTTPS的正确方法是什么? 我想将我的项目配置为使用https和他们在BUILD 2017中展示的证书。 我尝试了几个设置,但没有任何效果。 经过一番研究,我更加困惑。 似乎有很多方法来配置URL和端口……我已经通过代码看到了appsettings.json , appsettings.json ,在launchsettings.json我们也可以设置URL和端口。 有“标准”的方法吗? 这是我的appsettings.development.json { “Kestrel”: { “Endpoints”: { “Localhost”: { “Address”: “127.0.0.1”, “Port”: “40000” }, “LocalhostWithHttps”: { “Address”: “127.0.0.1”, “Port”: “40001”, “Certificate”: { “HTTPS”: { “Source”: “Store”, “StoreLocation”: “LocalMachine”, “StoreName”: “My”, “Subject”: “CN=localhost”, “AllowInvalid”: true } } } } } } 但是当我从命令行启动dotnet run或者从Visual Studio启动调试器时,它始终需要来自launchsettings.json的url和端口。 […]