天道酬勤,学无止境

ASP.NET CORE 2.1 Server timeout while debugging

'Error: Server timeout elapsed without receiving a message from the server.'.

I'm trying to debug some server-side code and while I do that the client gets disconnected in less than a minute.

I'm only using SignalR to communicate to clients, without controllers yet.

Is there any setting that can disable timeout or at least make it way longer than it is now?

my launchSettings.json:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:26793",
      "sslPort": 44386
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "ASPNETCORE_HTTPS_PORT": "44386"
      }
    },
    "Api": {
      "commandName": "Project",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "ASPNETCORE_URLS": "https://localhost:5001;http://localhost:5000"
      }
    }
  }
}

评论

Thanks to @Arhire Ionut

Here is how to increase Javascript client timeout

hubConnection.serverTimeoutInMilliseconds = 100000; // 100 second

More details here => https://github.com/aspnet/Docs/issues/6885

What @MahmoudFarhat mentioned in another answer is correct. But also take a look at this link and then read my comments below.

If signalR got disconnected, you should try re-establishing the connection again. The connection could drop for several other reasons, including the user switching networks. For example if the user is using a cell-phone and connected to the home/office Wifi but steps out which then connects to cellular data connection.

To reconnect you could use the following (works like a charm for me):

// re-establish the connection if connection dropped
connection.onclose(() => setTimeout(startSignalRConnection(connection), 5000));

where startSignalRConnection is :

const startSignalRConnection = connection => connection.start()
  .then(() => console.info('Websocket Connection Established'))
  .catch(err => console.error('SignalR Connection Error: ', err));

and connection is

const connection = new HubConnectionBuilder()
  .withUrl(connectionHub, options)
  .withHubProtocol(protocol)
  .build();

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • ASP.NET core 2.1 session
    In ASP.NET core 2.1, I cannot access session variables. While debugging I have noticed that in every request the session ID changes (HttpContex.Session.Id) Did I make mistake in session configuration? Startup.cs public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.Configure<CookiePolicyOptions>(options => { // This lambda determines whether
  • 长时间运行ASP.NET时IIS请求超时(IIS Request Timeout on long ASP.NET operation)
    问题 运行长时间的操作时,我正在从IIS请求超时。 在后台,我的ASP.NET应用程序正在处理数据,但是正在处理的记录数很大,因此该操作要花费很长时间。 但是,我认为IIS使会话超时。 IIS或ASP.NET会话有问题吗? 提前致谢 回答1 如果要延长ASP.NET脚本执行所允许的时间,请增加Server.ScriptTimeout值。 .NET 1.x的默认值为90秒,.NET 2.0及更高版本的默认值为110秒。 例如: // Increase script timeout for current page to five minutes Server.ScriptTimeout = 300; 也可以在web.config文件的httpRuntime配置元素中配置此值: <!-- Increase script timeout to five minutes --> <httpRuntime executionTimeout="300" ... other configuration attributes ... /> 请注意根据MSDN文档: “仅当编译元素中的debug属性为False时,此超时才适用。因此,如果debug属性为True,则不必将此属性设置为较大的值,以避免在调试时关闭应用程序。 ” 如果您已经完成此操作,但是发现会话即将到期,则增加ASP.NET
  • ASP.NET Core 2.1 no HTTP/HTTPS redirection in App Engine
    Problem I could not get the automatic redirection from HTTP to HTTPS to work correctly when the app is published to App Engine. When i access the website through example.com the site got routed to http://www.example.com and show that the connection is unsecured. When i access the website through https://www.example.com the website is then correctly secured with google-managed SSL. However the automatic redirection from HTTP to HTTPS does not occurs. I also got an error in Log Viewer warning that Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware was throwing Failed to determine the
  • Asp.Net core下Swagger适配二级目录及Nginx SSL证书配置
    一、背景   当前,前后端分离以及微服务化已经是趋势。因此,后端通常会有多个webapi应用。为访问多个应用,可以采用多个域名/IP或者单个域名/IP加不同端口的方式。但通常域名或者IP有限,而不同端口要采用非80/443等默认端口,也会导致不便。因此,单域名/IP+默认端口+二级目录就成为一种比较友好和方便的方式。 二、环境 asp.net core 3.1 (3.1.8)CentOS 8.2nginx/1.14.1Swashbuckle.AspNetCore 5.5.1 三、实现方式 1.Nginx配置 直接上Nginx.conf配置: server { # Nginx服务的Banner隐藏状态 server_tokens off; listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; # 反向代理webapi应用 location /sms/ { # 注意"localhost:8080"后面的"/" proxy_pass http:/
  • Timeouts with long running ASP.NET MVC Core Controller HTTPPost Method
    I make use of ajax call in my ASP.NET Core MVC view pages MyView.cshtml $.ajax({ processData: false, contentType: false, data: new FormData(this), type: $(this).attr('method'), url: $(this).attr('action'), cache: false, success: function (data) { $('#mydiv).html(data); $('#bootstrapModal).modal('show'); Controller Post method" [HttpPost] [ValidateAntiForgeryToken] public async Task<IActionResult> MyLongRunningMethod(MyViewModel viewModel) { await MyProcess.Longprocess1(); await MyProcess.Longprocess2(); await MyProcess.Longprocess3(); await MyProcess.Longprocess4(); return PartialView("
  • 长时间运行的 ASP.NET MVC 核心控制器 HTTPPost 方法超时(Timeouts with long running ASP.NET MVC Core Controller HTTPPost Method)
    问题 我在ASP.NET Core MVC视图页面中使用了ajax调用 MyView.cshtml $.ajax({ processData: false, contentType: false, data: new FormData(this), type: $(this).attr('method'), url: $(this).attr('action'), cache: false, success: function (data) { $('#mydiv).html(data); $('#bootstrapModal).modal('show'); 控制器发布方法” [HttpPost] [ValidateAntiForgeryToken] public async Task<IActionResult> MyLongRunningMethod(MyViewModel viewModel) { await MyProcess.Longprocess1(); await MyProcess.Longprocess2(); await MyProcess.Longprocess3(); await MyProcess.Longprocess4(); return PartialView("_MyPartialPage"); } 这是可行的,但仅在长时间运行的过程中存在问题。
  • browser timeouts while asp.net application keeps running
    I'm encountering a situation where it takes a long time for ASP.NET to generate reply with the web page (more than 2 hours). It due to the codebehind running for a while (very long, slow loop). Browser (both IE & Firefox) stops waiting for the reply (after about an hour) and gives generic cannot display webpage error (similar to what you would see if you'd try to navige to non-existing server). At the same time asp.net app keeps going (I can see it in debugger) and eventually completes. Why does this happen? Are there any settings in web.config to influence this? I'm hoping there's a timeout
  • ASP.NET Core 2.1 cookie authentication appears to have server affinity
    I'm developing an application in ASP.NET Core 2.1, and running it on a Kubernetes cluster. I've implemented authentication using OpenIDConnect, using Auth0 as my provider. This all works fine. Actions or controllers marked with the [Authorize] attribute redirect anonymous user to the identity provider, they log in, redirects back, and Bob's your uncle. The problems start occurring when I scale my deployment to 2 or more containers. When a user visits the application, they log in, and depending on what container they get served during the callback, authentication either succeeds or fails. Even
  • 指定的CGI应用程序遇到错误,服务器终止了该过程(The specified CGI application encountered an error and the server terminated the process)
    问题 我在azure上托管了一个asp.net 5应用程序,代码已针对beta8进行了编译,该应用程序在本地环境中运行良好,并且当我在azure网站上发布了代码时。 我收到一个常见错误“指定的CGI应用程序遇到错误,服务器终止了该过程。” 回答1 通过从wwwroot下的web.config文件中删除forwardWindowsAuthToken ,我能够解决此问题。 导航到src / ProjectName / wwwroot 打开web.config 在httpPlatform删除forwardWindowsAuthToken="true/false"属性 重新部署和我的工作正常。 看到这里https://github.com/aspnet/Hosting/issues/364进行大量讨论 回答2 简短答案 对于我们来说,解决方法是在UseIISIntegration()上使用WebHostBuilder UseIISIntegration() 。 public static void Main(string[] args) { var host = new WebHostBuilder() .UseContentRoot(Directory.GetCurrentDirectory()) .UseKestrel() .UseIISIntegration() //
  • Request timeout from ASP.NET Core app on IIS
    I make a web request to a third-party api from my ASP.NET Core application. When app is running alone itself, request succeeds. When app is running in IIS on the same server, request timeouts. Request is made from a Hangfire recurring job to Asana API endpoint (HTTPS) via RestSharp client. All the own app's pages are available through IIS, but app cannot make any requests. Where should I look and what to debug to solve this problem?
  • 即使在.NET Core控制台应用程序中使用Console.ReadLine(),docker容器也会立即退出(docker container exits immediately even with Console.ReadLine() in a .NET Core console application)
    问题 我正在尝试在Docker容器中运行.NET Core 1.0.0控制台应用程序。 当我从计算机上的Demo文件夹中运行dotnet run命令时,它可以正常工作; 但是当使用docker run -d --name demo Demo时,容器立即退出。 我尝试了docker logs demo来检查日志,它只是显示Console.WriteLine中的文本: 演示应用正在运行... 没别的。 我已经将项目上传到https://github.com/learningdockerandnetcore/Demo 该项目包含Programs.cs ,用于创建演示映像的Dockerfile和project.json文件。 回答1 您应该以交互方式(使用-i选项)运行容器,但是请注意,当您运行容器时,后台进程将立即关闭,因此请确保您的脚本在前台运行,否则将根本无法运行。 回答2 如果将应用程序切换到目标.NET Core 2.0,则可以使用Microsoft.Extensions.Hosting包通过使用HostBuilder API启动/停止应用程序来承载.NET Core控制台应用程序。 它的ConsoleLifetime类将处理常规的应用程序启动/停止方法。 为了运行您的应用程序,您应该实现自己的IHostedService接口或从BackgroundService类继承
  • .NET Core微服务之基于Steeltoe使用Eureka实现服务注册与发现
    Tip: 此篇已加入.NET Core微服务基础系列文章索引=> Steeltoe目录快速导航:1. 基于Steeltoe使用Spring Cloud Eureka2. 基于Steeltoe使用Spring Cloud Zuul3. 基于Steeltoe使用Spring Cloud Hystrix4. 基于Steeltoe使用Spring Cloud Config5. 基于Steeltoe使用Zipkin一、关于Steeltoe与Spring Cloud    Steeltoe的官方地址:http://steeltoe.io/,其官方介绍如下:Steeltoe is an open source project that enables .NET developers to implement industry standard best practices when building resilient microservices for the cloud. The Steeltoe client libraries enable .NET Core and .NET Framework apps to easily leverage Netflix Eureka, Hystrix, Spring Cloud Config Server, and Cloud Foundry
  • 什么是Kestrel(相对于IIS / Express)(What is 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中托管时,我没有任何跨平台要求,因此,即使我什至need Kestrel也感到困惑,但是似乎没有其他选择-即使最简单的示例也使用Kestrel。 回答1 什么是茶est 这是功能强大的Web服务器。 您可以仅使用Kestrel运行ASP.NET Core应用程序。 但是当我运行我的网站时,我仍然在系统托盘中看到IIS Express图标。 在您的ASP.NET应用程序中,可能在wwwroot目录中,您将看到一个包含以下内容的web.config: <?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer>
  • 微软隐藏几乎所有 .Internal 命名空间类的做法
    目录 前言 Microsoft.AspNetCore.Mvc.ViewFeatures.Internal 消失了 升级到 ASP.NET Core 3.1 项目文件(.csproj) Program.cs Startup.cs ViewBag 与 Razor Pages 第一次接触 ViewBag 与 Razor Pages 第二次接触 小结(文件更改对比图) ASP.NET Core 3.1的确很棒,肉眼可见的快、快、快! 前言 2019年的最后一个月,微软终于发布了.Net Core 3.1,这是 .Net Core 有史以来的第二个长期支持版本(至少 3 年的支持期限)。 作为一个大版本更新,.NET Core 3.0 引入了大量改进和新特性,例如新增加的 Windows Forms 和 WPF、新的 JSON API、对 ARM64 架构的支持,以及全面提升的性能。 所以升级是势在必行的,那么很多开发人员就面临一个问题: 如果从上一个长期支持版本 ASP.NET Core 2.1 升级到最新的 ASP.NET Core 3.1 ? .Net Core 版本列表: From:https://dotnet.microsoft.com/download/dotnet-core 如果是之前的 .Net Framework,这个升级是非常平滑的,甚至不需要做任何改动(比如:.Net
  • 在调试中禁用应用程序见解(Disable application insights in debug)
    问题 使用调试配置时,如何自动禁用应用程序见解并仅在发布时启用它? 是否可以在不创建仅用于调试的其他工具密钥的情况下执行此操作? 我在整个代码中散布了trackevent语句,将它们包含在调试预处理器检查中并不是一个理想的解决方案。 我当前的解决方案是将ApplicationInsights.config文件的“ Build Action设置为Build Action None以便不将其复制到项目的输出目录中,但这不是一个可以基于活动构建配置自动进行的过程。 有一个开发人员模式,但需要手动更改(如果可以有条件地设置配置文件,也可以清空instrumentationkey解决的问题)。 参见http://apmtips.com/blog/2015/02/02/developer-mode/ 参考:http://blogs.msdn.com/b/visualstudioalm/archive/2015/01/07/application-insights-support-for-multiple-environments-stamps-and-app-versions.aspx 回答1 您可以尝试使用TelemetryConfiguration.DisableTelemetry属性。 #if DEBUG TelemetryConfiguration.Active
  • 阿里P8架构师精心整理的Nginx入门到实战篇,Java开发者福音
    前言 Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。 其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。 Nginx简介 1.1 常用的Web服务器简介 1.1.1 Apache服务器 1.1.2 Lighttpd服务器 1.1.3 Tomcat服务器 1.1.4 IBM WebSphere 服务器 1.1.5 Microsoft IIS 1.2 Nginx发展 1.3 选择Nginx的理由 1.3.1 它可以高并发连接 1.3.2 内存消耗少 1.3.3 成本低廉 1.3.4 其他理由 1.4 Nginx与Apache、Lighttpd的综合对比 Nginx服务器的安装与配置 2.1 安装Nginx服务器所需要的系统资源 2.2 Nginx的下载
  • ASP.NET Core 1.1在本地运行良好,但是在发布到Azure时显示“启动应用程序时发生错误”。(ASP.NET Core 1.1 runs fine locally but when publishing to Azure says “An error occurred while starting the application.”)
    问题 我一直在开发ASP.NET Core Web应用程序,主要基于Visual Studio 2017 RC2中提供的MVC模板。 它在本地调试模式下运行良好,但是当我尝试将其发布到Azure托管的Web应用程序时,出现此错误: 启动应用程序时发生错误。 .NET Core X86 v4.1.1.0 | Microsoft.AspNetCore.Hosting版本1.1.0-rtm-22752 | Microsoft Windows 6.2.9200 我尝试在web.config文件中设置stdoutLogEnabled="true" ,但似乎没有效果,错误是相同的。 更新: 在一些帮助下,我设法检索了日志,并显示: Application startup exception: System.TypeLoadException: Could not load type 'System.IO.File' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e'. at Microsoft.Extensions.DependencyModel.FileWrapper.OpenRead(String path) at Microsoft.Extensions
  • Asp.Net Core项目应用IdentityServer4:建立授权与验证服务
    系统说明 Windows 101909Visual Studio Community 201916.5.5.Net Core3.1.202IdentityServer43.1.3IdentityServer4.AccessTokenValidation3.0.1 1,建立授权Server 1.1 创建空白Asp.Net Core Web项目 1.2 修改Debug方式 修改Properties => launchSettings.json如下: { "profiles": { "IdentityServer4Demo": { "commandName": "Project", "launchBrowser": false, "applicationUrl": "http://localhost:5000", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } } } 此步骤可做可不做,只是方便debug输出信息 1.3 Nuget引用IdentityServer4 建议别引用最新的Preview版本,虽然编译没问题,但是实际运行的时候总是提示invalid scope 1.4 创建Config类 public class Config { /// <summary> /// 定义要保护的资源 /
  • ASP.Net Core 2.1 Angular SSR/Universal returning Http Status Code 404
    With SpaPrerenderingExtensions available in ASP.Net core 2.0 JavaScriptServices, it seems that we can return the HTTP Status Code from the Angular (SSR) App which SpaPrerenderingExtensions will use to return the HTTP Status Code to the client. If you take a look at below method in SpaPrerenderingExtensions private static async Task ServePrerenderResult(HttpContext context, RenderToStringResult renderResult) Complete code of SpaPrerenderingExtensions is available here: https://github.com/aspnet/JavaScriptServices/blob/8ded472fe93123079ab97c9332f24460340876d2/src/Microsoft.AspNetCore.SpaServices
  • .NET Core与Mono(.NET Core vs Mono)
    问题 .NET Core和Mono有什么区别? 我在官方网站上发现一条声明:“为此编写的代码也可以跨应用程序堆栈(例如Mono)移植”。 我的目标是使用C#,LINQ,EF7和Visual Studio创建一个可以在Linux上运行/托管的网站。 有人告诉我他想让它成为“单声道”,但我不知道那是什么意思。 我知道我想将.NET Core 1.0与上面列出的技术一起使用。 他还说他想使用“快速CGI”。 我也不知道那是什么意思。 如果我的期望是现实的,您能帮助我理解所有这些术语吗? 回答1 死灵法师。 提供实际答案。 .Net Core和Mono有什么区别? .NET Core现在正式是.NET的未来。 它在很大程度上是从重新编写ASP.NET MVC框架和控制台应用程序开始的,其中当然包括服务器应用程序。 (由于它是图灵完备的,并且支持与C dll的互操作,因此,如果您绝对愿意,也可以使用它编写自己的桌面应用程序,例如通过诸如Avalonia之类的第三方库,这在当时是非常基础的我首先写了这篇文章,这意味着您几乎只限于Web或服务器。)随着时间的流逝,.NET Core中已经添加了许多API,以至于在3.1版之后,.NET Core会跳到5.0版。不带“核心”的.NET 5.0,这将是.NET Framework的未来。 过去,完整的.NET Framework将在维护模式下像完整的