问题标签 [kestrel-http-server]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
157 浏览

asp.net - http 服务器的责任与使用此服务器托管的 Web 应用程序的责任

我正在评估 ASP.NET Core 应用程序的各种托管选项。在 ASP.NET 的新编程模型中,您使用一组中间件(它们是旧的IHttpModule&的混合体IHttpHandler)处理请求。

您可以拥有一个中间件,它可以负责身份验证、处理静态文件或在发送之前压缩响应(仅举几例)。混乱来了。

在责任范围内,在哪里设置服务器和应用程序之间的边界?

哪一方应该负责压缩响应?使用 IIS,这由服务器处理并在 web.config 中进行配置。Kestrel 不提供此功能 AFAIK,因此您需要在应用程序中实现一个自定义中间件,该中间件将为您处理此问题。哪一个更合适?

认证呢?IIS 提供身份验证设置(匿名、模拟、表单身份验证)。相反,在 ASP.NET Core 中,我们也可以编写一个应用程序中间件来为我们处理这个问题。

好的,SSL由服务器处理,因为它位于协议层的下方,并且应用程序仅在 HTTP(S) 上运行。

服务器应该承担什么责任?一个应用程序应该有什么责任?

0 投票
1 回答
1713 浏览

asp.net - 在 ASP.NET 5 中设置 IISExpress 和 webapi 中的基本路径

我需要让 WebAPI 项目在与平时不同的基本路径下工作。我在 Visual Studio 下创建了使用 WebAPI 和 ASP.NET 5 的简单项目。

在设置为http://localhost:38170/的基本路径下,我的项目工作正常,我能够从测试控制器(http://localhost:38170/api/values)获取值。在这个阶段,我的 IIS Express 配置是:

我尝试在项目属性下更改 App URL 以反映我的需要: http://localhost:38170/xxx

现在运行项目并点击http://localhost:38170/xxx/api/values会导致 404。尝试http://localhost:38170/api/ values 从控制器返回值,就好像没有任何改变一样。我注意到 Visual Studio 中的更改不会以任何方式反映在 IIS Express 配置中(我不知道它们是否应该......)。

我尝试像在这个线程中那样手动更改 IISExpress 上的路径:在 IIS express 中创建虚拟目录

结果是:

http://localhost:38170/api/values - 500.19 错误(配置错误),这很好 - 我不打算这样做

http://localhost:38170/xxx/api/values - 502.3 - 访问 httpPlatformHandler 时网关错误

我想这个错误是在 httpPlatformHandler 配置中的某个地方,但我不确定如何与 IIS Express 结合使用。我的 web.config 是:

我尝试了随机更改,例如路径属性的更改,xxx/*但没有任何效果。

编辑:澄清问题。

如何使用 httpPlatformHandler 和 Kestrel 在 IISExpress 上的 ASP.NET 5 (ASP.NET Core) 上设置 WebAPI 以设置除根以外的基本路径。

0 投票
1 回答
134 浏览

curl - 为 Kestrel AspNet5 运行 Nginx 代理

我在运行 Nginx 服务器以代理对 Kestrel 的请求时遇到了一些麻烦。在 Kestrel 中,我可以看到响应来得相对较快,由于某种原因导致 Nginx 崩溃,直到超时才返回响应。

这是我的代理配置:

ngic.conf:

我使用默认参数运行 kestrel 以在端口 5000 上运行应用程序。

在 192.168.163.143 处从浏览器请求它不会返回 json,直到超时。

我试过 curl 我的端点,我发现:直接 Kestrel 调用一次返回整批数据,而 Nginx 调用返回一部分 json 并卡住......

任何想法?

0 投票
2 回答
1699 浏览

asp.net-core - 从模拟器发送请求时出现 Kestrel 错误

通过 Fiddler 向 Kestrel 发出请求时,以下请求成功。

通过 NETMF Emulator 发出请求时,以下请求失败。

这是 ASP.NET Core 错误消息。该错误似乎与日志记录有关!

这是整个 ASP.NET Core 程序。

0 投票
4 回答
54234 浏览

asp.net - 什么是 Kestrel(与 IIS / Express 相比)

什么是 kestrel Web 服务器,它与 IIS / IIS Express 有什么关系?

我来自于在 IIS Express 上开发应用程序并将它们托管在 IIS Web 服务器上。使用 ASP.NET Core,我依赖Microsoft.AspNetCore.Server.Kestrel并且我的初创公司拥有.UseServer("Microsoft.AspNetCore.Server.Kestrel"). 但是当我运行我的网站时,我仍然会在系统托盘中看到 IIS Express 图标。有人问我使用的是 IIS Express 还是 Kestrel,我不知道该说什么!

当我在 PC 上开发并在 Azure 中进行主机开发时,我没有任何跨平台要求,所以即使是 Kestrel,我也会感到困惑need,但似乎没有其他选择——即使是最简单的示例也使用 Kestrel。

0 投票
1 回答
1261 浏览

asp.net-core - .NET Core 上的 ASP.NET Core 是遵循控制台应用模型还是 IIS 托管模型?

目前,我维护一个作为 Windows 服务运行的应用程序,从消息队列服务器读取消息,处理它们并将结果放回消息队列服务器。但它还包含一个可通过 Web API 访问的健康监控组件。它被实现为一个控制台应用程序,它使用 Katana 来自托管健康监控子系统。

我现在正试图弄清楚我们是否可以在 RTM 之后将其移至 .NET Core 和 ASP.NET Core。我知道 Windows 服务部分无法移植,但我也可以将控制台应用程序作为分离的 Docker 容器运行,以在主要功能方面基本上实现相同的目标。但是健康监测将如何运作?据我所知,Katana 项目已经更新到 ASP.NET 5(我猜是大改名之前的 ASP.NET Core 1),但它不能在 .NET Core CLR 上运行。Katana 将需要完整的 CLR。所以这意味着Katana已经出局了。

这是否意味着我们构建应用程序的方式无法使用 .NET Core?还是通过 Kestrel 托管应用程序不排除在第一次请求之前运行代码的可能性?使用 IIS,应用程序在第一个请求之前不会存在(除非您使用自动启动,但它更多的是速度优化,而不是应用程序的行为类似于“始终运行的应用程序”),并且通常应用程序是请求-基于而不是持续运行。IIS 托管应用程序中的后台线程是一个非常糟糕的主意。这和红隼一样吗?或者 DNX 会启动您的应用程序并使其一直运行直到它关闭,就像控制台应用程序一样,这样我们就可以运行我们想要的所有后台线程?

0 投票
1 回答
1406 浏览

asp.net-core - 将红隼与 dotnet 核心一起使用时设置“服务器名称”

我正在编写一个使用它的应用程序asp.net mvc,现在运行在微软的kestrel服务器上。它工作正常,我在启动时使用hosting.json定义如下的文件将值传递给它;

有没有办法给“服务器”起一个名字,这样它就不会总是报告localhost或一直报告undefined

0 投票
2 回答
4338 浏览

asp.net - Asp.Net Core 1.0(又名 Asp.Net 5)网站刷新与任何文件更改?

寻找类似 browsersync 的功能可以让 Node 应用程序在任何文件更改时自动重新加载浏览器。

使用 dnx-watch 运行 Asp.Net Core(又名 Asp.net 5),它会使用任何 C# 代码更改重新启动 Kestrel Web 服务器,但仍然必须手动刷新浏览器以查看其客户端或服务器文件是否更改的更改。使用 Gulp 构建管道并考虑使用它来执行 dnx-watch 和重新加载浏览器,但在网上找不到任何示例。

喜欢在这方面有一些帮助。

谢谢

0 投票
1 回答
718 浏览

c# - 用于图像扩展的 ASPNET Core img src 通配符

我已经在wwwroot我的项目中上传了图像,它们的名称与产品的名称匹配(存储在数据库中)。现在我想在我的视图中显示它们,但不知道它们的扩展名,因为用户将能够上传任何类型的图像文件。他们是否有任何通配符或任何其他技术来解决这个问题?我的代码是:

0 投票
1 回答
272 浏览

asp.net - ASP.NET 应用程序无法打开 Kestrel

我们正在尝试使用 VSCode 在 Mac 上编写 ASP.NET 应用程序。我们已经成功安装了 VSCode、DNX、Yeoman、Node.js 和 npm,以及ASP.NET 指南中提到的所有其他内容的排列。使用 Yo 创建示例应用程序,恢复依赖关系,甚至构建没有错误后,使用“dnx web”运行应用程序会返回错误。

System.TypeLoadException:无法从程序集“Microsoft.Extensions.PlatformAbstractions,版本=1.0.0.0,文化=中性,PublicKeyToken=adb9793829ddae60”加载类型“Microsoft.Extensions.PlatformAbstractions.IAssemblyLoadContextAccessor”。

完整的堆栈跟踪

我们在从命令行运行“dnx web”或通过 VSCode 的“dnx run command”运行“dnx web”时遇到此错误,并且都使用 dnx 1.0.0-rc1-update1 和最新更新(我相信是 rc2-16595)

我认为这是我们 Kestrel 设置中的版本控制问题 - 我们的项目(dnu 构建)正确,只是在加载时测试中断。有任何想法吗?