标签: 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
查看次数

X-Original-For 标头:它的目的是什么?

在记录我的 Web 应用程序接收到的 HTTP 标头(它是负载均衡器+friewall)时,我注意到我收到了 X-Original-For 和 X-Original-Proto 标头(除了传统的 X -Forwarded-XXX 标头)。

他们的目的是什么?

谢谢。

http kestrel-http-server asp.net-core

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

.NET Core 3.0 IHostedService 访问 Web 服务器 URL - 方案、主机、端口等

我遇到的问题很简单。我想访问我的IHostedService.

我找不到办法做到这一点。那里没有任何请求,所以我无法使用IHttpContextAccessor.

IServerfeatures 属性没有任何地址,我没有选择。

我不想在配置中硬编码服务器的 URL。

我运行的.NET core版本是3.0。

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

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

Kestrel 上的 Blazor Windows 身份验证仅在本地有效?在身份验证握手请求之间收到匿名请求

我按照以下步骤创建了一个具有 Windows 身份验证并通过 Kestrel/Negotiate 托管的 Blazor 应用程序。(https://learn.microsoft.com/en-us/aspnet/core/security/authentication/windowsauth?view=aspnetcore-3.0&tabs=visual-studio#kestrel

使用 Windows 身份验证创建 Blazor 应用

使用 Visual Studio 2019 (16.4.0) 创建 Blazor 应用程序。(Windows 身份验证,https)

支持使用 Negotiate 和 Kerberos 的 Windows 身份验证

使用 Kestrel 运行时,请按照以下步骤进行操作。

  1. 进口NuGet package Microsoft.AspNetCore.Authentication.Negotiate
  2. 在Startup.cs的ConfigureService()中添加以下代码。
   services.AddAuthentication(NegotiateDefaults.AuthenticationScheme).AddNegotiate();
Run Code Online (Sandbox Code Playgroud)
  1. Configure()在中添加以下代码Startup.cs。它们添加在app.UseRouting();和之间app.UseEndpoints(...
            app.UseAuthentication();
            app.UseAuthorization();
Run Code Online (Sandbox Code Playgroud)

Windows 身份验证不起作用。添加中间件ValidateAuthentication

在应用此问题的答案之前,它仍然无法与 Windows 身份验证一起使用。

  1. 将其添加到您的配置方法中:
app.UseMiddleware<ValidateAuthentication>();
Run Code Online (Sandbox Code Playgroud)
  1. 这是中间件本身:
internal class ValidateAuthentication : IMiddleware
{
  public async Task InvokeAsync(HttpContext context, RequestDelegate next)
  {
    if (context.User.Identity.IsAuthenticated)
        await next(context); …
Run Code Online (Sandbox Code Playgroud)

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

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

asp net core 6.0 kestrel服务器不工作

我有这个代码运行 kestrel

builder.WebHost.UseKestrel().UseUrls("https://myfirstproj1.asp")
.UseIISIntegration();
Run Code Online (Sandbox Code Playgroud)

但我无法通过我指定的网址访问该网站。我究竟做错了什么?

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

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