在localhost上运行时,我的C#应用​​程序会间歇性地挂起

时间:2016-06-14 15:34:19

标签: c# localhost hang

那里有一个有灵魂的人有时间帮我弄清楚为什么我的应用程序间歇性挂起(并希望如何解决它)?我正在运行VS2015的一个访问SQL Server数据库的Web程序。有时我会点击我网页上的链接,一切正常。但是,其他时候,小圈子永远旋转,它永远不会回来。它似乎与数据库无关,因为有一次我发现它挂在XmlSerializer serializer = new XmlSerializer(type);

的电话上

我在Windows 10笔记本电脑(16GB和大量磁盘)上的localhost上运行IIS Express中的网站。如果有人认为可以帮助我诊断问题,我也有ReSharper。我已经和它斗争了好几天,不知道还有什么可做的,但希望有人会对我有同情心。

  

Re:D Stanley的评论:“你有任何日志记录吗?你可以在调试器中运行它以查看它挂在哪里吗?系统事件日志中有什么东西吗?”

有日志记录,但仅限于捕获的异常。没有任何东西可以帮助悬挂情况。我可以在调试器中运行它,但是当它挂起时我无法看到它挂起的位置(它在外部代码中)。运行程序时,事件日志会报告“perflib”错误。如果您认为这有用,我可以发布该信息。

更多信息。我安装了Fiddler。当应用程序挂起时,Fiddler仍然会去城里。它显示的“进程”是“scriptedsandbox64”,它正在进行I / O并消耗CPU时间。

2 个答案:

答案 0 :(得分:0)

我建议您在代码中添加更多日志消息,例如:

DateTime.Now.ToString("o") "Starting xxx"
DateTime.Now.ToString("o") "Finished xxx"

其中xxx是某些代码块的名称。您怀疑问题出在外部代码中,因此请包装所有这些调用。

然后,您可以查看应用程序花费过多时间的位置。找到正确的区域后,可能会添加更多日志记录以专注于问题。

答案 1 :(得分:0)

我的悬而未决问题的答案是使用本地IIS而不是IIS Express。一旦我弄清楚如何为localhost设置网站并开始使用Local IIS运行,我的挂起就消失了。