症状:Azure上的ASP.NET Web Forms网站偶尔崩溃,并且所有.aspx页面请求均因此错误而失败。该问题似乎是随机的,并且只会在很长时间内发生一次。该站点可以运行几个月,没有任何问题,然后出乎意料的是,它将停止为任何.aspx页提供服务,并在每个.aspx页请求中给出错误。重新启动网站是唯一的解决方案(或重新部署,这会导致相同的情况)。
这是一个很难调试的问题,因为它是零星的,我发现的其他答案都无济于事,他们没有解决该站点将长时间部署和运行然后崩溃的问题,似乎是随机出现的。最后,我从微软那里得到了一些帮助。
我有一个奇怪的,零星的问题,一个简单的测试应用程序(Visual Studio控制台应用程序),它通过发送简单的http请求和计时响应时间充当托管的aspx网站(而不是应用程序)的监视器.在过去的几个星期里,我已经使用过这个问题了.在白天看似随机的时间,我的http请求开始失败并出现上述错误.它们似乎是超时,因为失败的请求都需要60秒.在如上所述的一段时间的一致错误之后(在一种情况下从几分钟到90分钟的随机时间段),错误停止并且http响应开始返回而没有正常速度的错误(通常约0.25秒).监视程序客户端请求触发一个非常简单的数据库查找,在服务器端只有1-2行代码.
我还可以通过更新主机站点上的任何.cs文件来随意触发此行为,除其他外,这会导致应用程序池回收.我的看门狗应用程序立即开始超时,出现上述错误.
它闻起来像某种循环连接问题,因为如果我只是重新启动看门狗应用程序,它工作正常,响应开始在正常延迟回来.
我已经尝试过设置request.KeepAlive = false和request.ServicePoint.ConnectionLimit = 1,那些没有帮助.
另一个线索,我无法将IIS管理器连接到此服务器上托管的两个不同网站中的任何一个,这一直都运行正常.我试图通过IIS管理器连接"基础连接已关闭".每次.我有一段时间没有更新任何一个网站,所以这不是我的任何改变.
这是在IIS7上运行的后端的asp.net 4网站,在集成管道模式下具有专用的应用程序池.
此外,如果我将监视程序应用程序中的sleeptime变量更改为30秒,则问题不会显示.在我认为10-20秒的范围内有一些神奇的数字,如果请求暂停多于此,它们永远不会失败.
我认为IIS管理器无法连接这一事实很好地证明了我的测试应用程序独立于主机端的问题,但我想在打开支持事件之前覆盖我的基础...特别是因为我的控制台的简单重启应用程序修复问题...至少有一段时间.
class Program
{
//make a simple web request and just return the status code
static string SendHttpMsg(string url, string postData)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url));
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] byte1 = encoding.GetBytes(postData);
request.ContentLength = byte1.Length;
//request.KeepAlive = false; //no effect
//request.ServicePoint.ConnectionLimit = 1; //no effect
Stream requestStream = request.GetRequestStream();
requestStream.Write(byte1, 0, byte1.Length);
requestStream.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); …Run Code Online (Sandbox Code Playgroud) 我在使用Typescript尝试一个简单的jQuery示例时遇到此错误:
"tsc.js(23915,17)Microsoft JScript运行时错误:'$'未定义"
我的整个.ts文件:
/// <reference path="scripts/jquery-1.8.d.ts" />
$(document).ready(function () {});
Run Code Online (Sandbox Code Playgroud)
jquery-1.8.d.ts来自DefinitelyTyped,但如果我使用标准的jquery.d.ts,我会得到同样的错误.我没有在引用标记上出现任何错误,它是正确的并且正在找到.d.ts文件.
我显然遗漏了一些基本的东西,我无法弄清楚为什么我会收到这个错误.我安装了VS 2012扩展程序并在jQuery上获得完全自动完成功能...所以当我输入'$'时,我会获得自动完成弹出窗口.生成的.js文件是正确的,没有错.一个更复杂的.ts文件正在正确编译,输出.js文件非常好,所以这更像是一个烦恼而不是错误,我想.或者我因为运行时错误而错过了其他错误?
我正在通过在命令中添加"外部工具"来编译:C:\ Program Files(x86)\ Microsoft SDKs\TypeScript\0.8.1.1\tsc.exe参数:-e"$(ItemPath)" - sourcemap