标签: kestrel-http-server

什么是Kestrel(vs 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中托管,所以我很困惑,如果我甚至是needKestrel,但它似乎没有替代品 - 即使最简单的样本也使用Kestrel.

asp.net iis kestrel-http-server asp.net-core

134
推荐指数
4
解决办法
3万
查看次数

如何让kestrel Web服务器监听非localhost请求?

我已经将我的c#,asp.net 5,mvc 6应用程序部署到了Windows 2008服务器上.我已经启动dnx web它正在侦听端口5000并且从本地计算机访问时工作正常.

如何让它听取非本地主机请求?

PS这个问题并不重复......当hosting.ini实际上有.ini格式时,它指的是asp.net pre RC1.现在,它是JSON,我找不到任何实际应该包含在其中的文档.

PPS真正的解决方案是对链接问题的未接受答案,并提出了一个重要的警告.脚步:

  1. 根据链接的答案更改project.json.
  2. 将项目发布到服务器.
  3. 在服务器上,转到...\approot\src\YourProject文件夹并在那里打开命令窗口.
  4. dnx web- 它会失败
  5. dnu restore
  6. 运行'dnu build`
  7. 运行'dnx web` - Web服务器现在应该可以正常启动了

c# asp.net dnx kestrel-http-server asp.net-core

71
推荐指数
6
解决办法
6万
查看次数

由于ErrorCode ='0x80004005:80008083,.NET Core应用程序无法在IIS中启动

我有一个.NET Core应用程序.它在VS2017和Kestrel的本地运行.它在IIS下本地运行.但是,在服务器上,它无法以502.5 - Process Failure消息开头.

在事件日志中,我得到更多细节:

具有物理根'C:...\my-app-folder \'的应用程序'...'无法使用命令行'"dotnet"启动进程.\ MyApp.dll',ErrorCode ='0x80004005:80008083.

该应用程序的早期版本在同一台服务器上运行良好,唯一的区别是它们是使用VS2017RC(2&3)发布的,这是第一次使用完全发布的VS2017.

什么ErrorCode = '0x80004005 : 80008083.意思?

我如何解决它?

iis .net-core kestrel-http-server asp.net-core visual-studio-2017

63
推荐指数
5
解决办法
5万
查看次数

您在*nix服务器上使用哪个Web服务器进行ASP.NET Core生产?

随着ASP.NET Core现已发布,我想知道Linux和Mac环境的最佳托管选项是什么.是否有正在开发的生产级Web服务器?

我唯一知道的是带有框架的Kestrel.从文档中可以看出,与IIS相比,Kestrel缺少一些功能

在此输入图像描述

Stackoverflow答案表明.NET Core应用程序可以与任何HTTP服务器一起使用.这是否意味着它可以与Apache合作?如果是这样,它会丢失任何功能吗?我的印象是它只适用于基于OWIN的服务器.我错过了什么吗?

c# asp.net .net-core kestrel-http-server asp.net-core

62
推荐指数
1
解决办法
3万
查看次数

ASP.NET Core 2.1 + Kestrel(如何禁用HTTPS)

因此,随着ASP.NET Core 2.1的出现,Kestrel现在会自动在HTTP端创建一个HTTPS端点,并且默认项目模板设置为从HTTP重定向到HTTPS(这很容易撤消).

但是我的问题是......如何为我的项目完全禁用HTTPS.我已经阅读了文档,并使用了各种HTTPS配置设置,但我做的任何事情似乎都不允许我将其关闭并只运行HTTP项目.

我疯了还是只是错过了什么.我希望这很容易做到.

https kestrel-http-server asp.net-core-2.1

60
推荐指数
8
解决办法
4万
查看次数

Kestrel是否使用单个线程来处理Node.js等请求?

无论红隼Node.js的基于libuv.

虽然Node.js确切地说它使用了一个事件循环,但我似乎无法找到Kestrel的情况,或者它是否利用像IIS这样的线程池/请求队列?

红隼在Web服务器后面

红隼在Web服务器后面

Node.js事件循环

    ?????????????????????????
 ??>?        timers         ?
 ?  ?????????????????????????
 ?  ?????????????????????????
 ?  ?     I/O callbacks     ?
 ?  ?????????????????????????
 ?  ?????????????????????????
 ?  ?     idle, prepare     ?
 ?  ?????????????????????????      ?????????????????
 ?  ?????????????????????????      ?   incoming:   ?
 ?  ?         poll          ?<??????  connections, ?
 ?  ?????????????????????????      ?   data, etc.  ?
 ?  ?????????????????????????      ?????????????????
 ?  ?        check          ?
 ?  ?????????????????????????
 ?  ?????????????????????????
 ????    close callbacks    ?
    ?????????????????????????
Run Code Online (Sandbox Code Playgroud)

kestrel-http-server asp.net-core

59
推荐指数
2
解决办法
2万
查看次数

ASP .NET Core读取环境变量

使用dnx运行我的ASP.NET核心应用程序我能够从命令行设置环境变量,然后像这样运行它:

set ASPNET_ENV = Production
dnx web
Run Code Online (Sandbox Code Playgroud)

在1.0中使用相同的方法:

set ASPNETCORE_ENVIRONMENT = Production
dotnet run
Run Code Online (Sandbox Code Playgroud)

不起作用 - 该应用程序似乎无法读取环境变量.

Console.WriteLine(Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"));
Run Code Online (Sandbox Code Playgroud)

返回null

我错过了什么?

asp.net asp.net-core-mvc kestrel-http-server asp.net-core

51
推荐指数
3
解决办法
6万
查看次数

Visual Studio 2017启用SSL

如何在Visual Studio 2017中为项目启用SSL?

在VS15中,我可以选择Project - > Properties - > Debug - > Enable SSL.VS2017中不提供此选项.它搬到了哪里?

编辑:

我甚至尝试过编辑.\vs\config\applicationhost.config无济于事:

        <listenerAdapters>
            <add name="http" />
            <add name="https" />
        </listenerAdapters>

        <sites>
            <site name="WebSite1" id="1" serverAutoStart="true">
                <application path="/">
                    <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation=":8080:localhost" />
                </bindings>
            </site>
            <site name="Filters" id="2">
                <application path="/" applicationPool="Clr4IntegratedAppPool">
                    <virtualDirectory path="/" physicalPath="c:\Users\Ashley\documents\visual studio 2017\Projects\Filters\src\Filters" />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation="*:51107:localhost" />
                    <binding protocol="https" bindingInformation="*:43107:localhost" />
                </bindings>
            </site>
            <siteDefaults>
                <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" />
                <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
            </siteDefaults> …
Run Code Online (Sandbox Code Playgroud)

ssl https kestrel-http-server visual-studio-2017

45
推荐指数
6
解决办法
4万
查看次数

如何在ASP.NET Core 2.x中使用带有Kestrel的HTTPS/SSL?

我目前正在使用ASP.NET Core 2.x,我曾经能够让Kestrel使用HTTPS/SSL,只需将其放入UseUrls()方法中即可:

var host = new WebHostBuilder()
    .UseUrls("http://localhost", "https://111.111.111.111")
    .UseKestrel()
    .Build();
Run Code Online (Sandbox Code Playgroud)

但现在我得到了例外:

 System.InvalidOperationException:
     HTTPS endpoints can only be configured using KestrelServerOptions.Listen().
Run Code Online (Sandbox Code Playgroud)

如何配置Kestrel在ASP.NET Core 2.x中使用SSL?

ssl https kestrel-http-server asp.net-core-2.0

42
推荐指数
1
解决办法
4万
查看次数

为什么aspnet核心从Docker内部的端口80开始?

TL; DR:为什么aspnet核心应用程序在Docker镜像中的端口80上运行,但在docker镜像之外运行5000.

阐述

我浏览了这里的aspnet核心/ docker教程:https: //docs.microsoft.com/en-us/dotnet/core/docker/building-net-docker-images

在页面的一半,我按照规定启动应用程序:

dotnet run
Run Code Online (Sandbox Code Playgroud)

除此之外,这打印这个:

Now Listening on: http://localhost:5000
Run Code Online (Sandbox Code Playgroud)

大.这就是我的预期.本教程的下一步是从Docker镜像中启动完全相同的应用程序.

docker build -t aspnetapp .
docker run -it --rm -p 5000:80 --name aspnetcore_sample aspnetapp
Run Code Online (Sandbox Code Playgroud)

这导致了

Now listening on: http://[::]:80
Run Code Online (Sandbox Code Playgroud)

等待.笏?为什么aspnet核心应用程序在端口80上运行?当我直接从机器运行它时,它在端口5000上运行.没有配置文件更改.

我怀疑它与基本的docker图像有关,但是在docker中还不够熟练以跟踪它.

asp.net docker .net-core kestrel-http-server

35
推荐指数
5
解决办法
1万
查看次数