问题标签 [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.
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](IHttpApplication
1 application) 在 Microsoft.AspNetCore.Hosting.Internal.WebHost.Start() 在 ConsoleApp1.Program.Main(String[] args)按任意键继续 。. .
有没有办法像使用 owin 和 httplistener 一样使用不同的虚拟路径在同一个端口上拥有两个侦听器?
linux - 如何在 AWS Linux 实例上运行 .NET Core MVC 站点
我想从 AWS Amazon Linux AMI实例运行 .NET Core MVC 网站。
以下是我到目前为止采取的步骤:
- 在 Visual Studio 2015 中创建模板ASP.NET Core Web 应用程序 (.NET Core) - C# - MVC Web 应用程序项目。在 IIS Express 中编译和运行应用程序。未对任何配置(web.confg、project.json 等)进行任何更改。
- 将整个 Web 应用程序解决方案上传到 GitHub。
- 启动 Amazon Linux AMI (2016.03.2) 实例。为简单起见,安全组现在开放“所有流量”访问。
- 使用 PuTTY SSH 进入 Linux 实例。使用ec2-user登录。
- 更新实例
sudo yum update -y
- 安装libunwind
sudo yum install libunwind -y
- 安装gettext
sudo yum install gettext -y
- 安装.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
- 关联
sudo ln -s ~/dotnet/dotnet /usr/local/bin
- 安装.NET 版本管理器 (DNVM)
curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh | DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh
- 运行命令
source /home/ec2-user/.dnx/dnvm/dnvm.sh
- 安装.NET 执行环境 (DNX)
dnvm upgrade -r coreclr
- 安装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
- 安装Git
sudo yum install git -y
- 在“/home/ec2-user”目录中为应用程序创建目录。移动到该目录。
mkdir director-name cd directory-name
- 使用 Git 克隆 Web 应用程序
git config user.name "myUserName" git config user.email "myEmail" git clone https://github.com/username/repositoryname.git
- 移动到“项目”目录
cd solution-name/src/web-project-name
。 - 恢复包
dotnet restore
- 构建应用程序
dotnet build
- 运行应用程序
dotnet run
此时我在终端中看到以下内容:
现在收听:http://localhost:5000
我尝试使用末尾标记的端口 5000 (http://aws-ip-or-dns:5000) 访问 AWS DNS/IP,但没有得到任何响应。
我知道Docker和Mono是我可以使用的工具,但我宁愿让这种方法发挥作用。
我用来安装 .NET Core、DNVM 和 DNX 的脚本是来自这些链接的 CentOS 和 Ubuntu 方向的某种组合:
- https://docs.asp.net/en/latest/getting-started.html
- https://www.microsoft.com/net/core#centos
- https://docs.asp.net/en/1.0.0-rc1/getting-started/installing-on-linux.html
免责声明 我对 Linux 没有那么丰富的经验。公平地说,我不理解我正在运行的一些命令。但是,我是来学习的!
问: 我需要做什么才能获得运行 AWS Amazon Linux 环境的模板 .NET Core Web 应用程序?
(我的猜测是我在设置 HTTP 服务器时缺少一些东西)
我需要更多的声誉来发布两个以上的链接,所以如果有人想编辑,我会很感激的。
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
吗?
.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。
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 端口。有什么建议/样品吗?
asp.net-core - 带有 JSONP 的 ASP.NET Core MVC
我想启用现有的 MVC 控制器(来自 ASP.NET Core/Kestrel 服务器)将消息包装为 JSONP,以便可以从浏览器跨域访问它们。我有哪些选择?
asp.net-core - Kestrel 作为 exe 运行时返回 HTTP 500
我有一个小的 Asp.Net Core Web 应用程序。我以 net461 框架为目标,因为它依赖于 Restsharp。
当我以 ./web.exe 运行此 Web 应用程序时,它返回 HTTP 500。当我从项目文件夹中使用“dotnet run”运行时,它运行良好。
我必须使用第一个版本,因为我将它发布给没有 .Net SDK 的提供商。
我能做些什么?
我project.json
的在这里:
asp.net-core - 在 Kestrel 设置中忽略了 Json 配置源
我正在使用 ASP.NET Core 1 RTM Web 应用程序,并且正在将 Kestrel 设置更新为最新约定。安装程序旨在为 提供以下来源server.urls
,从最低到最高优先级:
- 在代码中设置的 URL
Program.Main()
(默认,例如用于生产) - 设置的 URL
hosting.Development.json
(例如,在开发时覆盖默认值) - 在环境变量中设置的 URL(例如,覆盖暂存或其他生产环境的默认值。)
根据最新的参考资料(例如在 SO和Github 上),这就是我现在得到的:
ProjDir\Program.cs
:
ProjDir\hosting.Development.json
:
从命令行,设置ASPNETCORE_ENVIRONMENT=Development
,这是输出:
我的预期输出将是Now listening on: http://localhost:51254
. UseConfiguration
URLs 值是从 JSON 源正确获取的(根据控制台日志),但是 Kestrel 配置会忽略它,即使在 UseUrls
.
我错过了什么?感谢您的建议。
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
iis - 在 IIS 中托管时出现“Microsoft.AspNet.Server.Kestrel”问题
我有 ASP.NET Core MVC 6 Web API 项目,当它托管在 IIS 上时,会出现以下错误:
project.json 的内容:
请注意,我已尝试删除 global.json 文件,并尝试运行命令 dnu list、dnu restore、dnu build。仍然得到同样的错误。
提前致谢。