我目前有一个在页面上出错的制作应用,它只是说
The webpage is not available
当我下载代码并在我的本地计算机上运行时,它运行得很好。
只是想知道如何调试生产网站?生产站点上没有源代码,只有程序集......我可以将调试转为true吗?
否则我的其他选择是什么?
由于
答案 0 :(得分:1)
您可以将customErrors
属性的mode
值设置为RemoteOnly
。这将显示外部访问者的正常自定义错误消息,但如果您浏览实际服务器上的页面,它将显示详细的.NET黄色死亡屏幕。
MSDN:http://msdn.microsoft.com/en-us/library/h0hfz6fc(v=vs.85).aspx
..是的,您可能还希望在执行此操作时在web.config中设置debug="true"
(但之后将其设置回来)。
您还可以检查服务器上的事件日志,以获取详细的异常消息,这些消息将为您提供有关问题的提示。
答案 1 :(得分:1)
修改web.config中的customErrors。如果您可以访问服务器的远程桌面,请将其设置为RemoteOnly。如果不这样做,则将其设置为Off:
<system.web>
<customErrors mode="Off"/>
</system.web>
如果仍然看到自定义错误页面,请确保machine.config未覆盖customErrors设置,并确保machine.config未将部署模式设置为retail = true。在machine.config中,部署设置应如下所示:
<deployment retail="false" />
答案 2 :(得分:1)
<compilation debug="true"> </compilation>
(在您的Web.Config中)。在将其部署到Production时将其关闭。
答案 3 :(得分:0)
如果您在Azure网站中托管您的应用程序,那么非常简单。请参阅我的博文http://blogs.msdn.com/b/webdev/archive/2013/11/05/remote-debugging-a-window-azure-web-site-with-visual-studio-2013.aspx。据我所知,Azure Web Sites是唯一提供远程调试的多租户托管服务提供商。
答案 4 :(得分:0)
调试生产网站是一种艺术形式。通常,有许多限制会阻止您在非生产站点上执行操作。例如,将调试器附加到进程是一个非常糟糕的主意!!!
以下几点可以帮助您入门。
您应该有一个临时或预生产网站。你的第一步应该是尝试在那里重现问题。如果你可以重现它,太好了!请在暂存站点上对其进行调试。
您可以打开系统提供的许多日志。 Windows事件日志将告诉您是否发生了任何灾难性事件。 IIS日志将告诉您Web请求是否甚至到达您的应用程序。 Fusion日志会告诉您是否有任何DLL丢失或无法绑定。等
查看日志时,请记住您的生产系统可能有多个节点。将所有网络节点中的所有节点从负载均衡器中取出可能会有所帮助,这样您就可以确保在给定的盒子上生成日志。
希望应用程序是用自己的某种日志记录编写的(例如使用log4net)。审计跟踪和调试日志应该可以帮助您确定问题。
使用秒表。如果错误发生的时间恰好为30或60秒,则系统中可能存在一些超时的连接。应用程序的客户端和服务器端点&#39;内部连接(例如数据库连接或Web服务)也将拥有自己的日志。更多东西要看!
您的重点应该是确定存在问题的特定组件和/或类。一旦你将它缩小到足够的范围,你可能必须在视觉上逐步完成&#34;您的代码可以检测任何类型的逻辑错误。记下所有输入变量,打开源代码控制,并逐行询问代码在给定所有输入的情况下将执行的操作。
调试生产网站非常困难。祝你好运!