标签: kestrel-http-server

本地iis上的asp.net核心Windows身份验证

我从defaut模板创建了默认的asp.net核心应用程序.我在创建新项目的过程中选择了Windows身份验证选项(这就是我所做的).当我在issexpress上运行应用程序时,它就像一个魅力.

当我将应用程序移动到本地iis时,它可以工作,但它不会获得用户信息.我在Windows功能中启用了Windows身份验证.但它显示我空的User.Identity.Name.我试图将这些行添加到web.config

    <security>
        <authentication>
            <windowsAuthentication enabled="true" />
            <anonymousAuthentication enabled="false" />
        </authentication>
    </security>
Run Code Online (Sandbox Code Playgroud)

试图从IIS管理器打开Windows身份验证.我不知道还有什么可能是错的.我错过了什么?

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

7
推荐指数
1
解决办法
671
查看次数

是否可以在Windows桌面应用程序中使用不带IIS的ASP.NET Core Web API?

目前,我正在尝试找到一种方法来构建一个托管浏览器窗口的桌面应用程序,并使用JavaScript与本地ASP.NET Core Web API作为"后端"进行通信:

在此输入图像描述

我的所有搜索都会提示我应该使用IIS Express Web服务器.

不幸的是,IIS Express版本适合我的情况,因为我希望整个应用程序是由非管理员用户安装和运行的.

由于IIS Express需要管理权限才能安装,因此这对我来说是超出范围的.

我的问题:

除了使用IIS Express运行ASP.NET Core Web API项目之外,还有其他方法吗?

我已经读过关于Kestrel服务器的信息,这似乎是我正在寻找的,但我仍然没有在这里得到大局.

编辑1:

在SE Software Recommendations上提出了一个有点相关的问题.

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

7
推荐指数
1
解决办法
4970
查看次数

用于Asp.Net Core的Kestrel网络服务器 - 在一段时间后回收/重新加载

简单的菜鸟问题:-)

我即将投入使用一个小型.NET核心应用程序主机,该主机托管在digitalocean的Droplet中.我一直使用IIS托管网站,但我想转移到Linux发行版并使用nginx作为反向代理.

我的问题是标题说:-)是否每次都需要像IIS一样回收"应用程序池"?如果没有,这是否意味着应用程序从Kestrel加载是在线直到它关闭?

最好的问候Jens

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

7
推荐指数
1
解决办法
1626
查看次数

错误-4077 ECONNRESET连接由对等kestrel重置

我的.net核心应用程序中出现以下错误

错误-4077 ECONNRESET连接由对等方重置

这究竟意味着什么?

我注意到如果长时间保持我的应用程序处于空闲状态,如1或2小时,则会发生此错误,

此外,我已经在我的应用程序中处理了会话超时,这对于给定的规定会话超时效果很好,可以说30分钟,但如果超过这个很长时间,那么我得到上述错误.

并且,我没有在我的应用程序中使用任何套接字.

对此有任何帮助表示赞赏!

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

7
推荐指数
0
解决办法
597
查看次数

如何将路由绑定到asp.net-core / Kestrel中的特定端口

在asp.net Web API中,可以将具有特定端口的路由映射到控制器,如下所示:

public void Run1()
{
    HttpConfiguration config = new HttpConfiguration();
    ...
    config.Routes.MapHttpRoute(
       name: "Controller1",
       routeTemplate: "{action}",
       defaults: new { controller = "Controller1" }
    );

    Microsoft.Owin.Hosting.WebApp.Start("http://localhost:9000/base1/", config);
}

public void Run2()
{
    HttpConfiguration config = new HttpConfiguration();
    ...
    config.Routes.MapHttpRoute(
       name: "Controller2",
       routeTemplate: "{action}",
       defaults: new { controller = "Controller3" }
    );

    Microsoft.Owin.Hosting.WebApp.Start("http://localhost:9000/base2/", config);
}

public void Run3()
{
    HttpConfiguration config = new HttpConfiguration();
    ...
    config.Routes.MapHttpRoute(
       name: "Controller3",
       routeTemplate: "{action}",
       defaults: new { controller = "Controller3" }
    );

    Microsoft.Owin.Hosting.WebApp.Start("http://localhost:9050/base3/", config); …
Run Code Online (Sandbox Code Playgroud)

kestrel-http-server asp.net-core

7
推荐指数
0
解决办法
681
查看次数

.NET Core / Kestrel应用程序无故关闭

到目前为止,在IIS 7.5下托管.net核心(2.2)API的现有设置运行顺利且效果很好。

突然我发现日志保存了该消息,Application is shutting down...而没有任何错误或其他原因的迹象。当突然生成比以前更多的日志文件时,我开始意识到这一点。

我不确定,但是当我从.NET Core 2.1迁移到2.2时可能已经开始了。

有人知道这是功能还是错误,有害或故意?

iis iis-7.5 .net-core kestrel-http-server .net-core-2.2

7
推荐指数
1
解决办法
765
查看次数

无法加载应用程序或执行命令'Microsoft.AspNet.Server.Kestrel'

我正在尝试将我的ASP.NET 5 WebApi部署到远程服务器(Windows Server 2008 R2),并且无法使其与IIS一起正常运行.

project.json

{
  "webroot": "wwwroot",
  "version": "1.0.0-*",

  "dependencies": {
    "App.Data": "1.0.0-*",
    "App.Model": "1.0.0-*",
    "App.Repository": "1.0.0-*",
    "App.ViewModel": "1.0.0-*",
    "AutoMapper": "4.1.1",
    "Microsoft.AspNet.Authentication": "1.0.0-rc2-16009",
    "Microsoft.AspNet.Authentication.JwtBearer": "1.0.0-rc2-16009",
    "Microsoft.AspNet.Diagnostics": "1.0.0-rc2-16136",
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc2-15873",
    "Microsoft.AspNet.Mvc": "6.0.0-rc2-16377",
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc2-16017",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-rc2-15932",
    "Microsoft.AspNet.StaticFiles": "1.0.0-rc2-15916",
    "Microsoft.Framework.Configuration.Json": "1.0.0-rc1-15666",
    "Microsoft.Framework.Logging": "1.0.0-rc1-15644",
    "Microsoft.Framework.Logging.Console": "1.0.0-rc1-15644",
    "Microsoft.IdentityModel.Protocols.OpenIdConnect": "2.0.0-rc1-211120828"
  },

  "commands": {
    "kestrel": "Microsoft.AspNet.Server.Kestrel",
    "web": "Microsoft.AspNet.Server.Kestrel"
  },

  "frameworks": {
    "dnx451": { }
  },

  "exclude": [
    "wwwroot",
    "node_modules"
  ],
  "publishExclude": [
    "**.user",
    "**.vspscc"
  ]
}
Run Code Online (Sandbox Code Playgroud)

当我尝试从浏览器访问应用程序时,我得不到任何回复.当我web.cmd在服务器上执行时,我收到以下错误:

Error: Unable to load …
Run Code Online (Sandbox Code Playgroud)

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

6
推荐指数
1
解决办法
3916
查看次数

Kestrel 和 OpenSSL 密码套件

如何从 Linux docker 容器中更改可用于 OpenSSL/Kestrel 的可用密码套件?

首先,让我们从一些环境细节开始:

  • 我们使用一个 Linux docker 容器(Docker 版本 17.06.0-ce,构建 02c1d87),我们通过 powershell 连接到它
  • 它托管一个用 C# 编写的 ASP.Net Core (netcore 1.1) Web 应用程序。
  • 主要针对 .NetStandard 1.4/1.6 编写,但计划迁移到 2.0。
  • 我们在 docker 容器上使用 Kestrel 作为我们的 Web 服务器
  • 据我所知,Kestrel 在后台使用 openSSL (1.0.1)。

我的 Program.cs 看起来像这样,它设置了 kestrel:

builder.UseKestrel(o => o.UseHttps(new HttpsConnectionFilterOptions
            {
                SslProtocols = SslProtocols.Tls12 | SslProtocols.Tls11,
                CheckCertificateRevocation = true,
                ClientCertificateMode = ClientCertificateMode.AllowCertificate 
                ServerCertificate = new X509Certificate2(certificate.Pfx, certificate.Password)
            }))
    .UseUrls(bindTo);
Run Code Online (Sandbox Code Playgroud)

关键是这样的:

SslProtocols = SslProtocols.Tls12 | SslProtocols.Tls11,
Run Code Online (Sandbox Code Playgroud)

无论我在这里设置什么值(Tls12、Tls11、Tls 或这些值的任何子集),它似乎都不会对连接可用的密码套件产生影响。我正在查看我的 URL 的 sslLabs 报告,由于旧协议上的 …

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

6
推荐指数
1
解决办法
3163
查看次数

显然是随机错误:"防伪令牌验证失败.防伪cookie令牌和请求令牌不匹配."

背景

我有一个相对较新的ASP.NET Core 2站点.它只在一台服务器上运行(Windows Server 2012 R2,IIS 8.5),每上几天我上传更新时只会重启一次.大约每天一次,由于防伪系统的拒绝,用户的请求失败.这些是POST请求,并没有什么特别之处.我在POST请求中包含了防伪值,99%的时间,POST请求都有效.但是当它们没有时,stdout日志会说,"防伪令牌验证失败.防伪cookie令牌和请求令牌不匹配." 当我使用该确切语句执行Web搜索时,我得到零结果.所以我转向Stack Overflow.[这已不再适用,因为Web搜索现在会产生此Stack Overflow问题.]

错误

我已经在下面列出了stdout日志的相关部分.

info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
      Request starting HTTP/1.1 POST [domain redacted] application/x-www-form-urlencoded 234
info: Microsoft.AspNetCore.Mvc.ViewFeatures.Internal.ValidateAntiforgeryTokenAuthorizationFilter[1]
      Antiforgery token validation failed. The antiforgery cookie token and request token do not match.
Microsoft.AspNetCore.Antiforgery.AntiforgeryValidationException: The antiforgery cookie token and request token do not match.
   at Microsoft.AspNetCore.Antiforgery.Internal.DefaultAntiforgery.ValidateTokens(HttpContext httpContext, AntiforgeryTokenSet antiforgeryTokenSet)
   at Microsoft.AspNetCore.Antiforgery.Internal.DefaultAntiforgery.<ValidateRequestAsync>d__9.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Mvc.ViewFeatures.Internal.ValidateAntiforgeryTokenAuthorizationFilter.<OnAuthorizationAsync>d__3.MoveNext()
info: Microsoft.AspNetCore.Mvc.RazorPages.Internal.PageActionInvoker[3]
      Authorization …
Run Code Online (Sandbox Code Playgroud)

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

6
推荐指数
1
解决办法
2517
查看次数

无法在Asp.net核心Action中取消任务

我试图取消在Asp.net核心行动中运行的任务.为此,我使用这个github样本.如果在控制台中运行服务,我可以取消任务,但如果我在IIS(或IIS Express)下运行任务没有取消.我在其他问题上看到了类似的问题.在此基础上,问题应该已经解决.我正在使用.Net core 2.1.

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

6
推荐指数
1
解决办法
849
查看次数