我从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身份验证.我不知道还有什么可能是错的.我错过了什么?
目前,我正在尝试找到一种方法来构建一个托管浏览器窗口的桌面应用程序,并使用JavaScript与本地ASP.NET Core Web API作为"后端"进行通信:
我的所有搜索都会提示我应该使用IIS Express Web服务器.
不幸的是,IIS Express版本不适合我的情况,因为我希望整个应用程序是由非管理员用户安装和运行的.
由于IIS Express需要管理权限才能安装,因此这对我来说是超出范围的.
我的问题:
除了使用IIS Express运行ASP.NET Core Web API项目之外,还有其他方法吗?
我已经读过关于Kestrel服务器的信息,这似乎是我正在寻找的,但我仍然没有在这里得到大局.
编辑1:
.net iis desktop-application kestrel-http-server asp.net-core
简单的菜鸟问题:-)
我即将投入使用一个小型.NET核心应用程序主机,该主机托管在digitalocean的Droplet中.我一直使用IIS托管网站,但我想转移到Linux发行版并使用nginx作为反向代理.
我的问题是标题说:-)是否每次都需要像IIS一样回收"应用程序池"?如果没有,这是否意味着应用程序从Kestrel加载是在线直到它关闭?
最好的问候Jens
我的.net核心应用程序中出现以下错误
错误-4077 ECONNRESET连接由对等方重置
这究竟意味着什么?
我注意到如果长时间保持我的应用程序处于空闲状态,如1或2小时,则会发生此错误,
此外,我已经在我的应用程序中处理了会话超时,这对于给定的规定会话超时效果很好,可以说30分钟,但如果超过这个很长时间,那么我得到上述错误.
并且,我没有在我的应用程序中使用任何套接字.
对此有任何帮助表示赞赏!
在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) 到目前为止,在IIS 7.5下托管.net核心(2.2)API的现有设置运行顺利且效果很好。
突然我发现日志保存了该消息,Application is shutting down...而没有任何错误或其他原因的迹象。当突然生成比以前更多的日志文件时,我开始意识到这一点。
我不确定,但是当我从.NET Core 2.1迁移到2.2时可能已经开始了。
有人知道这是功能还是错误,有害或故意?
我正在尝试将我的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) 如何从 Linux docker 容器中更改可用于 OpenSSL/Kestrel 的可用密码套件?
首先,让我们从一些环境细节开始:
我的 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 报告,由于旧协议上的 …
我有一个相对较新的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) 我试图取消在Asp.net核心行动中运行的任务.为此,我使用这个github样本.如果在控制台中运行服务,我可以取消任务,但如果我在IIS(或IIS Express)下运行任务没有取消.我在其他问题上看到了类似的问题.在此基础上,问题应该已经解决.我正在使用.Net core 2.1.
asp.net-mvc kestrel .net-core kestrel-http-server asp.net-core