|
|
1
2
仅凭你的堆栈跟踪很难确定地说出任何事情。但这里有一个可能的解释,网站正在关闭。 IIS有一个名为 快速故障保护 ,它使用它来保护自己不受坏应用程序的影响。当 快速故障保护 一旦触发,IIS将关闭运行错误应用程序的应用程序池。当这种情况发生时,即使用户试图访问应用程序,应用程序池也不会自动启动。只有在web服务器上的管理员手动启动池之后,应用程序才会重新联机。 有一件事可以触发 快速故障保护 在短时间内重复应用程序崩溃。我认为默认值是5分钟内5次崩溃。 我认为你的申请有时会触发 快速故障保护 在短时间内抛出几个未处理的异常。 要解决此问题,您必须对应用程序进行编码,以便它不会抛出未处理的异常。添加 应用程序错误 处理您的 全球.asax 处理和记录异常(在其他地方没有发现)将是一个好的开始。 |
|
|
2
1
从您的异常消息中可以看出,这可能是与此视图相关的问题 病人软膏 (或与此视图同名的视图)。您需要检查是否所有关闭问题都是同一条消息,以确保每次都是同一个问题。 如果您有权访问部署环境,则可以通过事件日志进行跟踪。 跟踪此错误的另一个建议是使用更广泛的try-catch组合来跟踪应用程序生成的所有异常(这需要是一个临时解决方案,只是为了确定问题原因)。为了区分已处理的异常,可以创建一个特定的异常和那些不能识别为一般异常的异常。 我希望这有助于追踪你的问题! |
|
|
3
0
欢迎来到一个有趣的世界,在一个圆孔中安装方钉,也就是ASP.NET Web表单中的异步编程。看一下stacktrace,我认为您正在.net 4.x中使用asp.net web表单,并在代码库中的某个地方执行异步编程。 当我不得不在asp.net webform(.aspx/.aspx.cs)中使用异步模式时,我花了无数个小时来尝试随机死锁。我发现有时候页面会永远旋转,或者像你的情况一样以悲剧的方式下降。 当MSFT必须使其与web表单兼容时,它允许您进行异步编程,这与MSFT的松散程度有很大关系。在web表单中使用Async/Await模式有一种正确的方法,而使用Async/Await模式则有一种错误的方法会导致主要问题。 我要求你仔细检查你的代码库,找出你在哪里使用异步编程。查找关键字“async”“await”“Task”等,看看您是否正确使用了该模式,并且没有执行完全错误的操作,例如
您要么必须在整个请求生命周期中正确地执行异步,要么根本不执行异步。有时你不得不使用async,比如在我的例子中,我不得不使用一个以这种方式实现的库,或者使用async,但作为一种折衷,使请求同步。 我建议你花点时间阅读一下。如果您确认要在web窗体中执行异步,这里有几个链接可供您开始使用。 https://msdn.microsoft.com/en-us/magazine/jj991977.aspx https://blog.stephencleary.com/2012/02/async-and-await.html https://blog.stephencleary.com/2012/07/dont-block-on-async-code.html How and When to use `async` and `await` An async/await example that causes a deadlock 你还可以做的另一件事是尝试隔离IIS何时开始死亡。这将帮助您锁定代码路径或胜过错误的页面。重新启动IIS服务器之前,请清除IIS日志。下次死的时候,仔细查看日志文件,看看最后请求了哪些页面。另外,您在事件查看器中看到了什么?有时会有更详细的解释。 顺便问一下,在生产中显示“黄色错误页”是怎么回事?请不要引发比您已经遇到的更多的问题,并使用自定义错误页和显示用户友好的错误消息。 祝你好运,让我们知道你发现了什么。 |
|
|
Costin · ASP。NET核心和角度部署-页面刷新给出404错误 4 年前 |
|
|
Kotikigor · Cookie无法工作[关闭] 8 年前 |
|
|
yrv16 · 部署项目和编译资产的正确方法 8 年前 |
|
|
Infinito · Java web应用程序部署Heroku 8 年前 |