问题标签 [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 回答
716 浏览

c# - 将同一端口上的侦听器(如虚拟应用程序)与 kestrel 相乘

以下将引发端点已被使用的异常:

未处理的异常:System.AggregateException:发生一个或多个错误。(错误 -4091 EADDRINUSE 地址已在使用中)---> Microsoft.AspNetCore.Server.Kestrel.Networking.UvException:错误 -4091 EADDRINUSE 地址已在 Microsoft.AspNetCore.Server.Kestrel.Networking.Libuv.Check(Int32 statusCode) 在 Microsoft.AspNetCore.Server.Kestrel.Networking.UvStreamHandle.Listen(Int32 backlog, Action 4 callback, Object state) at Microsoft.AspNetCore.Server.Kestrel.Http.TcpListenerPrimary.CreateListenSocket() at Microsoft.AspNetCore.Server.Kestrel.Http.Listener.<>c.<StartAsync>b__6_0(Object state) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Server.Kestrel.Http.ListenerPrimary.<StartAsync>d__9.MoveNext() --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at Microsoft.AspNetCore.Server.Kestrel.KestrelEngine.CreateServer(ServerAddress address) at Microsoft.AspNetCore.Server.Kestrel.KestrelServer.Start[TContext](IHttpApplication1 application) 在 Microsoft.AspNetCore.Hosting.Internal.WebHost.Start() 在 ConsoleApp1.Program.Main(String[] args)按任意键继续 。. .

有没有办法像使用 owin 和 httplistener 一样使用不同的虚拟路径在同一个端口上拥有两个侦听器?

0 投票
4 回答
9322 浏览

linux - 如何在 AWS Linux 实例上运行 .NET Core MVC 站点

我想从 AWS Amazon Linux AMI实例运行 .NET Core MVC 网站。

以下是我到目前为止采取的步骤:

  1. 在 Visual Studio 2015 中创建模板ASP.NET Core Web 应用程序 (.NET Core) - C# - MVC Web 应用程序项目。在 IIS Express 中编译和运行应用程序。未对任何配置(web.confg、project.json 等)进行任何更改。
  2. 将整个 Web 应用程序解决方案上传到 GitHub。
  3. 启动 Amazon Linux AMI (2016.03.2) 实例。为简单起见,安全组现在开放“所有流量”访问。
  4. 使用 PuTTY SSH 进入 Linux 实例。使用ec2-user登录。
  5. 更新实例sudo yum update -y
  6. 安装libunwind sudo yum install libunwind -y
  7. 安装gettext sudo yum install gettext -y
  8. 安装.NET Core curl -sSL https://raw.githubusercontent.com/dotnet/cli/rel/1.0.0-preview1/scripts/obtain/dotnet-install.sh | bash /dev/stdin --version 1.0.0-preview1-002702 --install-dir ~/dotnet
  9. 关联sudo ln -s ~/dotnet/dotnet /usr/local/bin
  10. 安装.NET 版本管理器 (DNVM) curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh | DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh
  11. 运行命令source /home/ec2-user/.dnx/dnvm/dnvm.sh
  12. 安装.NET 执行环境 (DNX) dnvm upgrade -r coreclr
  13. 安装Kestrel使用的libuv sudo yum install automake libtool wget -y wget http://dist.libuv.org/dist/v1.8.0/libuv-v1.8.0.tar.gz tar -zxf libuv-v1.8.0.tar.gz cd libuv-v1.8.0 sudo sh autogen.sh sudo ./configure sudo make sudo make check sudo make install sudo ln -s /usr/lib64/libdl.so.2 /usr/lib64/libdl sudo ln -s /usr/local/lib/libuv.so.1.0.0 /usr/lib64/libuv.so
  14. 安装Git sudo yum install git -y
  15. 在“/home/ec2-user”目录中为应用程序创建目录。移动到该目录。mkdir director-name cd directory-name
  16. 使用 Git 克隆 Web 应用程序git config user.name "myUserName" git config user.email "myEmail" git clone https://github.com/username/repositoryname.git
  17. 移动到“项目”目录cd solution-name/src/web-project-name
  18. 恢复包dotnet restore
  19. 构建应用程序dotnet build
  20. 运行应用程序dotnet run

此时我在终端中看到以下内容:

现在收听:http://localhost:5000

我尝试使用末尾标记的端口 5000 (http://aws-ip-or-dns:5000) 访问 AWS DNS/IP,但没有得到任何响应。

我知道DockerMono是我可以使用的工具,但我宁愿让这种方法发挥作用。

我用来安装 .NET Core、DNVM 和 DNX 的脚本是来自这些链接的 CentOS 和 Ubuntu 方向的某种组合:

  1. https://docs.asp.net/en/latest/getting-started.html
  2. https://www.microsoft.com/net/core#centos
  3. https://docs.asp.net/en/1.0.0-rc1/getting-started/installing-on-linux.html

免责声明 我对 Linux 没有那么丰富的经验。公平地说,我不理解我正在运行的一些命令。但是,我是来学习的!

问: 我需要做什么才能获得运行 AWS Amazon Linux 环境的模板 .NET Core Web 应用程序?

(我的猜测是我在设置 HTTP 服务器时缺少一些东西)

我需要更多的声誉来发布两个以上的链接,所以如果有人想编辑,我会很感激的。

0 投票
1 回答
99 浏览

asp.net-core - 需要澄清来自官方 asp.net 网站的信息的详细信息

我正在学习 Asp.Net Core。老实说,我有点困惑。

官网上说:

ASP.NET Core 与托管应用程序的 Web 服务器环境完全解耦

这是什么意思?这是否意味着 asp.net Core 应用程序可以托管在任何接受 http 流量并对其进行响应的服务器上,我从以下行中得到了这个概念

ASP.NET Core 支持在 IIS 和 IIS Express 中托管,以及使用 Kestrel 和 WebListener HTTP 服务器的自托管方案

来自上面的引用:什么是 Kestrel 和 WebListener HTTP 服务器?这是否意味着 apache tomcat 也可以托管 asp.net 核心应用程序,如果可以,那么安装 apache 后我需要什么?

我想知道的最后一件事是

此外,开发人员和第三方软件供应商可以创建自定义服务器来托管他们的 ASP.NET Core 应用程序。

如何创建自定义服务器来托管 asp.net 核心应用程序。这是指使用自托管应用程序OWIN吗?

0 投票
0 回答
1609 浏览

.net - 在 .Net 4.6.1 上运行 ASP.Net Core + Kestrel 的最低要求

我有一个控制台应用程序(实际上是一个 Service Fabric 有状态服务),在 Windows x64 上运行。
.csproj目前有一个project.json文件(为简洁起见,省略了其他依赖项):

我无法让 Kestrel 运行 - IWebHost.Start 引发libuv.dll无法找到的异常 ( Unable to load DLL 'libuv': The specified module could not be found)。

在 .Net 4.6.1 上使用 Kestrel 运行 ASP.Net 核心的正确方法是什么(.Net 核心不是我的选择)?看起来 libuv 包只针对 win7-*... 为什么?我应该改变什么?

我在 Windows 10 上使用 VS2015。

0 投票
2 回答
978 浏览

https - 如何使用 ASP.NET 5 Kestrel 在 Service Fabric 网关模式中处理 HTTPS 请求

我有一个带有无状态服务的 Service Fabric,它遵循网关模式侦听 HTTP 请求,然后将它们转发到集群中的业务逻辑。这很好用。现在我正在尝试添加 HTTPS 支持。网关项目使用 ASP.NET Core 1.0(在 NET461 上),我使用的是 Service Fabric SDK 5.1.150、Visual Studio 2015 Update 3。如果我手动启动网关项目(设置为启动项目),那么我可以点击HTTPS 端点,但是当我通过集群运行它时,端口是打开的,但它会立即关闭,我得到“本地主机意外关闭了连接”。在铬。这是我的启动代码:

可能独特的是我正在尝试使用 Kestrel,但我已经使用了一个示例(除了示例没有执行 HTTPS)。sslCert 变量已设置,再次,如果我将此项目作为 VS 中的启动项目运行它,那么我可以处理 HTTPS 请求。

我已经在集群中配置了端点,但它似乎没有什么区别,如果我不使用它,我仍然可以点击 tcp 端口。有什么建议/样品吗?

0 投票
1 回答
3374 浏览

asp.net-core - 带有 JSONP 的 ASP.NET Core MVC

我想启用现有的 MVC 控制器(来自 ASP.NET Core/Kestrel 服务器)将消息包装为 JSONP,以便可以从浏览器跨域访问它们。我有哪些选择?

0 投票
1 回答
372 浏览

asp.net-core - Kestrel 作为 exe 运行时返回 HTTP 500

我有一个小的 Asp.Net Core Web 应用程序。我以 net461 框架为目标,因为它依赖于 Restsharp。

当我以 ./web.exe 运行此 Web 应用程序时,它返回 HTTP 500。当我从项目文件夹中使用“dotnet run”运行时,它运行良好。

我必须使用第一个版本,因为我将它发布给没有 .Net SDK 的提供商。

我能做些什么?

project.json的在这里:

0 投票
2 回答
1548 浏览

asp.net-core - 在 Kestrel 设置中忽略了 Json 配置源

我正在使用 ASP.NET Core 1 RTM Web 应用程序,并且正在将 Kestrel 设置更新为最新约定。安装程序旨在为 提供以下来源server.urls,从最低到最高优先级:

  1. 在代码中设置的 URL Program.Main()(默认,例如用于生产)
  2. 设置的 URL hosting.Development.json(例如,在开发时覆盖默认值)
  3. 在环境变量中设置的 URL(例如,覆盖暂存或其他生产环境的默认值。)

根据最新的参考资料(例如在 SOGithub 上),这就是我现在得到的:

ProjDir\Program.cs

ProjDir\hosting.Development.json

从命令行,设置ASPNETCORE_ENVIRONMENT=Development,这是输出:

我的预期输出将是Now listening on: http://localhost:51254. UseConfigurationURLs 值是从 JSON 源正确获取的(根据控制台日志),但是 Kestrel 配置会忽略它,即使 UseUrls.

我错过了什么?感谢您的建议。

0 投票
1 回答
539 浏览

asp.net - 无法使用“dnx web”启动 Kestrel,说“当前运行时目标框架不兼容”

SO上有很多类似的问题,但我找不到解决问题的方法。很明显我对 .NET Core 还不够熟悉......)

我有一个严格的 ASP.NET Core 应用程序,我正在尝试使用dnx web命令启动Kestrel Web 服务器,但它失败了,因为似乎活动框架目标是dnx451(而不是dnxcore50)。

我的global.json看起来像:

摘自project.json

最后,在launchSettings.json

据我所见,project.json中的依赖项与 SDK 版本匹配:

但是,当我运行dnx web时,我得到以下信息:

不知道为什么它说当前的目标框架是dnx451?我想我可以在运行dnx web之前运行dnx use,但我的印象是配置应该为我处理设置?

这是我运行dnvm list时看到的内容:

编辑:似乎可以通过安装Visual Studio 2015 Update 3 .NET Core的更新工具来解决/避免这些问题,两者均可在以下网址获得:https ://www.microsoft.com/net/core#windows

0 投票
1 回答
172 浏览

iis - 在 IIS 中托管时出现“Microsoft.AspNet.Server.Kestrel”问题

我有 ASP.NET Core MVC 6 Web API 项目,当它托管在 IIS 上时,会出现以下错误:

project.json 的内容:

请注意,我已尝试删除 global.json 文件,并尝试运行命令 dnu list、dnu restore、dnu build。仍然得到同样的错误。

提前致谢。