问题标签 [kestrel]
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.
c# - 使用并发 ab 测试时,Kestrel 挂起
所以我有以下简单的代码:
我正在通过运行服务器
然后我尝试测试它:
json 文件是一个小{"test": 1}
字符串。
一开始,请求的处理速度与预期的一样快。但是我发出的请求越多,Kestrel 的速度就越慢。在某些时候(通常在处理 16k 个请求之后)它会挂起并且ab
工具超时。
有趣的是,如果我等待几秒钟并ab
再次运行,它的工作原理完全相同。在某个时候(在 3/4 请求之后的某个地方)它会挂起并超时。所以看起来 Kestrel 在某个时候会自动处理“挂起”请求,并再次准备好再次被阻止。
我已将最大打开文件描述符限制增加到 100000,但这根本不影响行为。我也和 Kestrel 一起玩过,options
但结果还是一样。
是什么原因造成的?我该如何解决?
我正在使用 macOS High Sierra 10.13.2 和 dotnet 核心版本 2.1.3。这种行为与 macOS 有关吗?
编辑:我要结束我自己的问题。这实际上是一个 macOS 问题。
android - 带有 Kestrel 的 ASP .Net Core 实现 SSL
在我的网站上实施 ssl 时我遇到了问题。我的网络作为 android 和 ios 的网络服务工作。一切都很顺利,直到我实施 SSL 证书,突然 android(除了三星之外的大部分 android)抛出这个错误:
E/ErrorHTTP:java.security.cert.CertPathValidatorException:找不到证书路径的信任锚。
然后我谷歌并降落到这里:
它说这主要是因为:
颁发服务器证书的 CA 未知
服务器证书不是由 CA 签名的,而是自签名的
服务器配置缺少中间 CA
这三个选项已经排除,我已经用 ssl checker 进行了检查。以上都不是,不是未知的,不是自签名的,我们使用的是comodo,中间证书和根证书也有效,你可以在这里查看:ssl checker for my link,你可以自己查看。
现在我被卡住了,证书是有效的。证书也可以在三星打开,但在其他一些品牌中不知何故失败,例如小米。我现在不知道在哪里看,是不是:
- ssl 配置,我需要继续挖掘,即使它在大多数验证器中标记为有效。
- 使android代码更容易受到攻击,甚至某些品牌也可以访问它,我的意思是是因为品牌还是如何?
我使用的规范:
ASP .Net 核心 2.0。
红隼。
科莫多证书。
原生安卓。
请帮忙!,谢谢。
c# - 从 ILogger 设置 Kestrel 输出颜色
我注意到在 ASP.NET Core 中设置不同的日志记录级别时,有时通过对 Entity Framework 的不同调用生成的日志记录输出等,控制台 ForeColor 更改为黄色、红色、蓝色等...
我认为能够对此窗口进行自定义颜色会很好(只是为了使我放入日志输出的内容更好地作为从我的代码发送到 ILogger 的消息)
我尝试以这种方式设置颜色(只是为了看看它是否会起作用)......
不幸的是,这不是那么简单,我必须在工厂中执行此操作,或者 ILogger 中的其他内容可以让我执行此操作 - 我想我会在这里询问,然后再开始在 Entity Framework Core 代码中进行挖掘以查看他们(微软)是如何做到的。
我尝试在 SO 和 MSDN 上搜索有关此主题的一些信息 - 我没有想出任何东西,所以如果它已经得到回答并且我只是在错误的地方寻找,我会提前道歉。
提前致谢!
c# - webapi .net 核心让 nginx connect() 失败(111:连接被拒绝)
通过 nginx 使用 kestrel 和代理将我的 webapi dotnet 核心项目部署到 Ubuntu 服务器配置
我在文件中的代码Program.cs
在其中创建文件/etc/nginx/sites-available/default
并创建符号链接/etc/nginx/sites-enable/default
我在 /etc/systemd/system/kestrel-project.service 中的文件
对于部署使用此脚本,它的工作直到今天
现在,当我在 pc 上的本地主机上启动我的 webapi 时 - webapi 运行良好并回答我的请求,但是从服务器我收到 HTTP 错误 500,/var/log/nginx/error.log
我看到了这个
请帮助我理解这个问题并解决它
没有更改 webapi 可以很好地工作很长时间但是几天前我开始出现这些错误
nginx - Nginx 反向代理到 ASP.net Core Kestrel 502 Bad Gateway 错误
我们在 Azure 网站应用服务前面有 Nginx 反向代理,由 ASP.net Core 程序在 IIS 上使用 Kestrel 构建。
但是,只有少数人收到 502 Bad Gateway 错误。
有没有人遇到过类似的问题或有解决方案?
.net-core - Kestrel 似乎已启动,但在以其他用户身份运行时不起作用
我有一个在红隼上运行的小型 .net 核心 WebAPI 服务。这是使用 TFS 部署在多台机器上自动部署的。部署后,自动化工具会在每台部署的机器上运行这个 kestrel 服务器。我可以验证:
- 应用程序在每台机器上启动(任务管理器中存在 dotnet 进程)
- 应用程序侦听正确的端口(因为尝试在该端口上手动运行它会引发该端口正在使用的错误)
但:
- 对于自动启动的应用程序,我无法在浏览器中访问 webapi 服务(http://localhost:8081)——说 404
- 如果我关闭自动启动的 dotnet 进程并手动运行它,它可以正常工作(WebApi 可在浏览器中访问)
为什么自动启动时不能正常工作?进程之间的唯一区别似乎是它们执行的用户。我该如何解决这个问题?
httpclient - 使用 System.Net.Http.HttpClient 时服务器返回无效或无法识别的响应错误
最近我将我的代码库从 .net core 1.0 迁移到 2.0 。之后,我随机收到错误“使用 System.Net.Http.HttpClient 时服务器返回无效或无法识别的响应错误” 。我在 100 个请求中有 2 个收到此错误。
还如何调试它,因为它是随机发生的:(
程序.cs
HTTP 网络文件
收到错误:
{"ClassName":"Flurl.Http.FlurlHttpException","Message":"GET https://xxx-yyy.oktapreview.com/api/v1/users/00ue1x6pgimMy2Zuf0h7失败。发送请求时出错。", "Data":{},"InnerException":{"ClassName":"System.Net.Http.HttpRequestException", "Message":"发送请求时出错。" ,"Data":{},"InnerException":{"ClassName":"System.Net.Http.WinHttpException", "Message":"服务器返回无效或无法识别的响应" ,"Data":{}," InnerException":null,"HelpURL":null,"StackTraceString":" 在 System.Runtime.ExceptionServices。1.GetResult()\r\n at System.Net.Http.WinHttpHandler.<StartRequest>d__105.MoveNext()","RemoteStackTraceString":null,"RemoteStackIndex":0,"ExceptionMethod":null,"HResult":-2147012744,"Source":"System.Private.CoreLib","WatsonBuckets":null,"NativeErrorCode":12152},"HelpURL":null,"StackTraceString":" at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Runtime.CompilerServices.ConfiguredTaskAwaitable
1.ConfiguredTaskAwaiter.GetResult()\r\n 在 System.Net.Http.DiagnosticsHandler.d__2.MoveNext()\r\n--- 堆栈跟踪从先前引发异常的位置结束 ---\r\n在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\r\n 在 System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() \r\n 在 System.Net.Http.HttpClient.d__58.MoveNext()\r\n--- 堆栈跟踪从先前引发异常的位置结束 ---\r\n 在 System.Runtime.ExceptionServices。 ExceptionDispatchInfo.Throw()\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\r\n 在 Flurl.Http.FlurlRequest.d__19.MoveNext()","RemoteStackTraceString":null,"RemoteStackIndex":0,"ExceptionMethod":null,"HResult":-2147012744,"Source":"System.Private.CoreLib","WatsonBuckets":null},"HelpURL":null}
c# - IHostedService 无故停止
谁能向我解释为什么我的服务器无缘无故停止了?在我的 IHostedService 实现下面:
这是我的日志?
看起来像在 IIS 上使用 kestrel (.Net Core) 我的方法睡了吗?为什么?
通常我的while(true)重新启动,因为我调用了 API。但是IHostedService是一个后台任务,它不应该停止吗?
github上的相关帖子
c# - 访问路径被拒绝,在 Ubuntu 上运行 Asp.net core 2.0
我无法使用下面的代码行。在我的开发机器(Windows)上它正在工作。是的,我正在 Windows 上开发应用程序并在 Ubuntu 上进行部署。下一个应用程序我不会这样做。
我收到错误消息“访问路径 /var/... 已定义”。
我使用 nginx 作为 Kestrel 的代理服务器。如Microsoft 指南中所述
我尝试随机触发一些权限命令,因为我远非 Ubuntu 专家,但 CreateDirectory 方法仍在产生错误。
我尝试过的权限命令:
我没有在 /var/www 中设置我的项目我正在使用 /var/anotherdir/anotherdir 之类的东西,这是一个问题吗?
https - 带有红隼和反向代理的 Service Fabric https 端点
我一直在尝试按照我可以找到的 microsoft 文档和各种帖子/博客上的说明在无状态 API 端点上设置 Https。它在本地运行良好,但在我的开发服务器上部署它后我很难让它工作
在我在实例监听器中的代码中
服务清单
启动
+
这是我在 azure 中得到的(通过 ARM 模板部署)
我有一个集群证书、ReverseProxy 证书和通过 azure ad 和 ARM 对 api 的身份验证
不知道还有什么相关的,如果您有任何想法/建议,非常欢迎
编辑:GetCertificate() 的代码