问题标签 [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.

0 投票
0 回答
267 浏览

asp.net - 管理 ASP.NET 和 ASP.NET Core 之间的会话

我需要将在 ASP.NET Core MVC 中创建的一些新页面“附加”到已经运行的 ASP.NET 应用程序中。关于这一点,我猜想,一种有趣的方法是使用 IIS 作为反向代理,将请求重定向到运行 ASP.NET Core 应用程序的 Kestrel 服务器。

我在这里遇到的问题是,我完全不知道在这个双向通信过程中使用的会话之间的关系:

  1. 将 IIS 用作反向代理时,是否可以使用 IIS 会话来控制用户是否可以访问在 Kestrel 中分配的页面,而该用户已经在浏览该 Kestrel 中分配的页面?

  2. 如果没有,是否有任何“干净”的方式可以直接“通信”IIS 和 Kestrel 会话,或者我是否被迫使用某种分布式缓存系统,如 Redis 或 SQL Server?当用户没有从一台服务器“跳转”到另一台服务器以便可以重置会话超时时,如何在导航时更新两个会话超时?关于如何克服这个问题的任何想法?

  3. 谈论重定向本身:在 IIS 中使用反向代理方法时,如果我想从 ASP.NET Core 页面移动到另一个页面,我应该使用 MVC 操作(像往常一样)还是应该使用从哪个 URL 重定向IIS 代理会重定向到目标操作本身吗?

正如你们所看到的,我是这些技术的绝对新手,我仍在研究如何在概念上解决这些问题,然后才卷起袖子,所以我还没有编写代码。

任何帮助都将受到欢迎。

0 投票
2 回答
11357 浏览

asp.net-core - 更改 ASP.Net Core 中 url 的“/api”部分

当我运行一个 .NET Core Web API 项目时,我得到一个如下所示的 URL:http://localhost:5000/api/...

如何将 URL 的 /api/ 部分更改为其他内容?即 - http://localhost:5000/myservice/...

我使用 Kestrel 作为我的网络主机。

0 投票
1 回答
508 浏览

c# - 防止 Kestrel 记录在 ExceptionFilter 中处理的错误

我使用异常过滤器在我的 ASP.NET Core 应用程序中记录异常,如下所示:

这很好用,但 Kestrel 也会记录这个事件,给我一个重复的条目。

当我像这样手动记录它时,如何防止此错误进一步传播?

我不想完全关闭它,因为那样我可能会错过管道其他部分发生的错误。

0 投票
2 回答
6240 浏览

https - Kestrel HTTPS BadHttpRequestException

通过 HTTP 和 Visual Studio 内部它工作正常。但是,当我尝试通过 HTTPS 访问端点时,我看到了这个错误,我不完全确定如何解决这个问题:

提琴手给了我这个:

我的直觉告诉我,这与从 dotnet core 1.0.1 迁移到 1.1.0 有关。在那之前一切都很好,但同样有可能我搞砸了其他事情,我只是不确定是什么!:)

0 投票
0 回答
302 浏览

c# - Service Fabric:在基于 Kestrel 的无状态服务中支持 HTTP 和 HTTPS

我有一个现有的无状态 ASP.Net Core MVC 服务结构服务,默认情况下(由向导生成代码)使用 HTTP。我们还需要使用相同的控制器在相同的服务中支持 HTTPS。

ServiceManifest.xml 中定义了两个端点:

下面是 StatelessService 派生类的 GetServiceInstanceListeners 覆盖:

运行时没有错误,服务确实绑定到端口,但是我在尝试连接时被拒绝连接,没有解释原因。

Windows 防火墙已禁用。

我知道这是代码(或框架/产品)的问题,因为如果我注释掉其中一个侦听器,另一个在其各自的端口上工作。但是当两者都被实例化时,两者都不起作用。似乎他们在某种程度上相互干扰,我不知道以什么身份。

我尝试从 UseKestrel() 切换到 UseWebListener() 并观察到相同的行为。所以这不是 Kestrel 特有的问题。

我尝试通过不在端点中指定端口来让它选择端口,并观察到相同的行为。

简而言之,我被卡住了。

0 投票
1 回答
1302 浏览

ssl - 使用 Kestrel 在 ASP.NET 核心中实现 SSL

我正在使用 12 月发布的 ASP.NET Core 和 VS 2015 预览工具。

我已经关注了许多关于如何在 Kestrel 中启用 SSL 的在线示例。他们都没有工作。

所以我在项目中尝试了一个名为“Enable SSL”的选项,它似乎为我设置了一个端口,并且可以在本地主机上工作,但似乎不能在其他地方工作。

我也试过 .UseKestrel() 我有 option.UseHttps("ssl.pfx", "password")

下面我有 UseUrls,但它似乎没有正确绑定到端口,因为我的 SSL 请求。当我尝试发出 SSL 请求时,它会超时。我使用了 netstat,似乎没有为我指定的 SSL 端口打开端口。

1) 如何使用 UseUrls?我需要 localhost 和远程机器访问 2) 如何配置 IIS express 以允许 https 调用?

如果有人有可靠的方法在 ASP.NET Core 项目中为 VS 2015 进行设置,我将不胜感激!

谢谢,

詹姆士

0 投票
0 回答
3144 浏览

linux - ASP.Net Core 日志文件未在 Linux 环境中编写

我有一个 ASP.Net Core (.Net Core 1.1.1) 应用程序,它使用内置记录器并将Serilog.Extensions.Logging.File日志写入文件,它在我的 macOS 开发环境中运行良好,但在 CentOS 环境中运行良好。

appsetting json:

启动.cs:

Logs目录不存在,我检查了以下内容:

  • 应用程序文件夹所有者是centos
  • 应用程序服务Usercentos文件夹所有者相同
  • 日志可用journalctl
  • 没有错误信息

我错过了什么吗?

0 投票
1 回答
842 浏览

visual-studio-2017 - VS2017下的Kestrel端口设置被忽略

我从 VS2017 启动 Kestrel 服务器时遇到问题。在 VS2015 中,launchSettings.json我能够像这样设置端口:

现在这个设置被 kestrel 忽略了。如果我将设置的名称更改为:"ASPNETCORE_SERVER.URLS"我收到有关该设置已弃用的警告,这表明该launchSettings.json文件仍在处理中。

我还尝试了设置端口的其他选项 - 设置环境变量 ( ASPNETCORE_URLS) 仍然有效,但使用dotnet run --server.urls http://0.0.0.0:5010无效。

0 投票
1 回答
681 浏览

c# - 在运行 Kestrel 服务器时构建 .NET 核心应用程序

在经典的 .NET 应用程序中,我会设置我的本地 IIS 来运行指定的应用程序。我可以构建应用程序并点击端点以立即查看更改。我不需要每次都启动调试器。我想通过使用 Kestrel 服务器的 .NET 核心来实现这一点。

我可以通过从命令行运行来运行我的应用程序dotnet run。但是,当我尝试构建时,文件正在使用中并且构建失败。是否有任何开发配置选项不会锁定文件,而是仅在需要时运行它们,从而允许我立即构建和测试更改?

0 投票
1 回答
314 浏览

json - 带有查询字符串的文件请求在 NGINX 后面的 ASP.NET Core 中失败

我有一个 ASP.NET Core 站点在 Linux 上的 NGINX 反向代理后面运行。我遇到了一个问题,如果我通过附加了查询字符串的代理进行文件请求(即用于缓存清除),我会收到 404 错误,但如果我直接从应用程序请求完全相同的 URL(不是通过NGINX),它工作正常,如果我删除查询字符串,它也工作正常。

下面的示例(NGINX 代理正在侦听端口 5000,应用程序正在侦听端口 5002)...

如果我使用如下网址: http://host-name:5000/path/file.json

我得到了正确的结果,这就是应用程序控制台输出上显示的内容:

如果我使用如下网址: http://host-name:5002/path/file.json

我得到了正确的结果,这就是应用程序控制台输出上显示的内容:

如果我使用如下网址: http://host-name:5002/path/file.json?_dc=1020

我得到了正确的结果,这就是应用程序控制台输出上显示的内容:

如果我使用如下网址: http://host-name:5000/path/file.json?_dc=1020

我收到 404 错误,这是应用程序控制台输出中显示的内容:

现在,我不清楚这是否是 NGINX 将其转发到 ASP.NET Core 应用程序的问题弄乱了,或者这不仅仅是 ASP.NET Core 应用程序(和/或 Kestrel)的问题被请求中显示的查询字符串和代理端口号的组合所抛弃。

NGINX 配置的相关部分如下所示:

有任何想法吗?

编辑:

我已经将我的服务器块修改为如下所示:

现在正在正确获取特定文件(完全绕过 Kestrel),但这似乎与我的控制器调用之一混淆,该控制器调用也附加了 _dc=XXXX。