最常见的ASP.NET支持问题-Microsoft Developer Support内部的报告

Microsoft Developer Support or ("CSS" - Customer Support Services) is where you're sent within Microsoft when you've got problems. They see the most interesting bugs, thousands of issues and edge cases and collect piles of data. They report this data back to the ASP.NET team (and other teams) for product planning. Dwaine Gilmer, Principal Escalation Engineer, and I thought it would be interesting to get some of that good internal information out to you, Dear Reader. With all those cases and all the projects, there's basically two top things that cause trouble in production ASP.NET web sites. Long story short, Debug Mode and Anti-Virus software.

遇到问题时,将在Microsoft内部发送Microsoft开发人员支持或(“ CSS”-客户支持服务)。 他们看到了最有趣的错误,成千上万的问题和边缘案例,并收集了大量数据。 他们将此数据报告给ASP.NET团队(和其他团队)以进行产品规划。 首席升级工程师Dwaine Gilmer,亲爱的读者,我认为将一些好的内部信息提供给您很有趣。 在所有这些情况和所有项目中,基本上有两个最重要的问题在生产ASP.NET网站中引起了麻烦。 长话短说,调试模式和防病毒软件。

Thanks to Dwaine Gilmer, Doug Stewart and Finbar Ryan for their help on this post! It's all them!

感谢Dwaine Gilmer,Doug Stewart和Finbar Ryan在这篇文章上的帮助! 全部都是!

#1问题-配置 (#1 Issue - Configuration)

Seems the #1 issue in support for problems with ASP.NET 2.x and 3.x is configuration.

似乎在支持ASP.NET 2.x和3.x问题方面排名第一的问题是配置。

Symptoms

Notes

  • OOM
  • Performance
  • High memory
  • Hangs
  • Deadlocks

There are more debug=true cases than there should be.

病征

笔记

  • OOM
  • 性能
  • 高记忆体
  • 挂起
  • 死锁

有更多的debug = true情况比应有的情况多。

People continue to deploy debug versions of their sites to production. I talked about how to automatically transform your web.config and change it to a release version in my Mix talk on Web Deployment Made Awesome. If you want to save yourself a headache, release with debug=false.

人们继续将其站点的调试版本部署到生产中。 在关于Web Deployment Made Awesome的Mix演讲中,我谈到了如何自动转换web.config并将其更改为发行版。 如果您想让自己不头痛,请使用debug = false释放。

Additionally, if you leave debug=true on individual pages, note that this will override the application level setting.

此外,如果在各个页面上保留debug = true,请注意,这将覆盖应用程序级别的设置。

Here's why debug="true" is bad. Seriously, we're not kidding.

这就是为什么debug =“ true”不好的原因。 说真的,我们不是在开玩笑。

  • Overrides request execution timeout making it effectively infinite

    覆盖请求执行超时,使其无限有效
  • Disables both page and JIT compiler optimizations

    禁用页面和JIT编译器优化
  • In 1.1, leads to excessive memory usage by the CLR for debug information tracking

    在1.1中,导致CLR过多的内存使用,无法进行调试信息跟踪
  • In 1.1, turns off batch compilation of dynamic pages, leading to 1 assembly per page.

    在1.1中,关闭动态页面的批量编译,导致每页1个程序集。
  • For VB.NET code, leads to excessive usage of WeakReferences (used for edit and continue support).

    对于VB.NET代码,导致过度使用WeakReferences(用于编辑和继续支持)。

An important note: Contrary to what is sometimes believed, setting retail="true" in a <deployment/> element is not a direct antidote to having debug="true"!

重要说明:与有时认为的相反,在<deployment />元素中设置retail =“ true”并不是解决debug =“ true”的直接方法!

#2问题-外部(非ASP.NET)根本原因引起的问题 (#2 Issue - Problems with an External (non-ASP.NET) Root Cause)

Sometimes when you're having trouble with an ASP.NET site, the problem turns out to not be ASP.NET itself. Here's the top three issues and their causes. This category are for cases that were concluded because of external reasons and are outside of the control of support to directly affect. The sub categories are 3rd party software, Anti-virus software, Hardware, Virus attacks, DOS attacks, etc.

有时,当您在使用ASP.NET网站时遇到问题时,问题可能出在ASP.NET本身之外。 这是最重要的三个问题及其原因。 此类别适用于因外部原因而结案且无法直接影响支持的情况。 子类别为第三方软件,防病毒软件,硬件,病毒攻击,DOS攻击等。

If you've ever run a production website you know there's always that argument about whether to run anti-virus software in production. It's not like anyone's emailing viruses and saving them to production web servers, but you want to be careful. Sometimes IT or security insists on it. However, this means you'll have software that is not your website software trying to access files at the same time your site is trying to access them.

如果您曾经运营过生产网站,那么您就会知道是否在生产中运行防病毒软件。 这不像任何人通过电子邮件发送病毒并将其保存到生产Web服务器上一样,但是您要小心。 有时,IT或安全部门会坚持这样做。 但是,这意味着您将拥有的软件不是您的网站软件,而是在您的网站尝试访问文件的同时尝试访问文件的软件

Here's the essence as a bulleted list

这是项目符号列表的本质

  • Concurrency while under pressure: This causes problems in big software. Make sure your anti-virus software is configure appropriately and that you're aware of which processes are accessing which files, as well as how, why and when

    压力下的并发:这会导致大型软件出现问题。 确保您的防病毒软件配置正确,并且知道哪些进程正在访问哪些文件,以及如何,为什么以及何时

  • Profile your applications: .NET and the Web are not black boxes. You can see what's happening if you look. Know what bytes are going out the wire. Know who is accessing the disk. Measure twice, cut once, they say? I say measure a dozen times. You'd be surprised how often folks put an app in production and they've never once profiled it.

    分析您的应用程序: .NET和Web并非黑匣子。 您可以看一下所发生的情况。 知道哪些字节会丢失。 了解谁在访问磁盘。 他们说两次测量,一次切割。 我说测量十次。 您会惊讶于人们将应用程序投入生产的频率,而他们从未对它进行过配置。

  • Anti-Virus Software: It can't be emphasized enough that site owners should ensure they are running the latest AV engine and definitions from their chosen anti-malware vendor. They've see folks hitting hangs due to flakey AV drivers that are over two years out of date.  Another point about AV software is that it is not just about old-school AV scanning of file access. Many products now do low level monitoring of port activity, script activity within processes and memory allocation activity and do not always do these things 100% correctly. Stay up to date!

    防病毒软件:不能太强调网站所有者应确保他们正在运行其所选反恶意软件供应商提供的最新AV引擎和定义。 他们已经看到人们由于过时两年的Flaky AV驱动程序而陷入困境。 关于AV软件的另一点是,它不仅涉及老式的文件访问AV扫描。 现在,许多产品对端口活动,进程内的脚本活动以及内存分配活动进行低级监视,并且并不总是能100%正确地执行这些操作。 保持最新!

  • Know where you're calling out to: Also, connection to remote endpoints: calling web services, accessing file systems etc. All of this can slow you down if you're not paying attention. Is your DNS correct? Did you add your external hosts to a hosts file to remove DNS latency? 

    知道要向何处发出呼叫:此外,还要连接到远程端点:调用Web服务,访问文件系统等。如果不注意,所有这些都会使您的速度变慢。 您的DNS是否正确? 您是否将外部主机添加到主机文件中以消除DNS延迟?

  • processModel autoconfig=true: This is in machine.config and folks always mess with it. Don't assume that you know better than the defaults. Everyone wants to change the defaults, add threads, remove threads, change the way the pool works because they think their textboxes-over-data application is special. Chances are it's not, and you'd be surprised how often people will spend days on the phone with support and discover that the defaults were fine and they had changed them long ago and forgotten. Know what you've changed away from the defaults, and know why. Don't program by coincidence.

    processModel autoconfig = true:这是在machine.config中,人们总是对此感到困惑。 不要以为您比默认值更了解。 每个人都想更改默认值,添加线程,删除线程,更改池的工作方式,因为他们认为其基于文本的数据框应用程序很特殊。 可能不是这样,您会感到惊讶的是,人们经常在支持下花几天时间在电话上,发现默认设置很好,并且很久以前就对其进行了更改并忘记了。 知道您已更改了默认值以外的内容,并知道原因。 不要巧合编程

...and here's the table of details:

...这是详细信息表:

Issue

Product

Description

Symptoms

Notes

Anti-virus software

All

Anti-virus software is installed onto Servers and causes all kinds of problems. 

  • Application restarting
  • Slow performance
  • Session variable are null
  • Cannot install hotfix
  • Intermittent time outs
  • High memory
  • Session lost
  • IDE Hangs
  • Deadlocks

This consists of all AV software reported by our customers. All cases do not report the AV software that is being used so the manufacturer is not always known. 

KB821438, KB248013, KB295375, KB817442

3rd party Vendors

All

This is a category of cases where the failure was due to a 3rd party manufacturer.

  • Crash
  • 100% CPU
  • High memory
  • Framework errors
  • Hang

The top culprits are 3rd party database systems, and 3rd party internet access management systems.

Microsoft component

All

Microsoft software

  • Intermittent time outs
  • High memory
  • Deadlocks
  • 100% CPU
  • Crash

Design issues that cause performance issues like sprocs, deadlocks, etc. Profile your applications and the database! (Pro tip: select * from authors doesn't scale.) Pair up DBAs and programmers and profile from end to end.

问题

产品

描述

病征

笔记

防毒软件

所有

防病毒软件已安装到服务器上,并导致各种问题。

  • 应用程序重启
  • 性能慢
  • 会话变量为空
  • 无法安装修补程序
  • 间歇性超时
  • 高记忆体
  • 会话丢失
  • IDE挂起
  • 死锁

这包括我们的客户报告的所有AV软件。 在所有情况下,都不会报告正在使用的AV软件,因此并不总是知道制造商。

KB821438KB248013KB295375KB817442

第三方供应商

所有

这是由于第三方制造商而导致故障的一类情况。

  • 崩溃
  • 100%CPU
  • 高记忆体
  • 框架错误

罪魁祸首是第三方数据库系统和第三方互联网访问管理系统。

微软组件

所有

微软软件

  • 间歇性超时
  • 高记忆体
  • 死锁
  • 100%CPU
  • 崩溃

导致性能问题的设计问题,例如存储过程,死锁等。分析应用程序和数据库! (专业提示:从作者那里选择*不会扩展。)将DBA和程序员配对,并从头到尾进行配置。

Spread the word! What kinds of common issues do YOU run into when running production sites, Dear Reader?

传播这个词! 亲爱的读者,在运行生产站点时会遇到哪些常见问题?

翻译自: https://www.hanselman.com/blog/most-common-aspnet-support-issues-reporting-from-deep-inside-microsoft-developer-support

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值