2014-06-25 35 views
2

我现在有一个生产的应用程序,是错误-ING在页面上了,它只是说如何在ASP.NET中调试生产应用程序?

The webpage is not available 

当我下载的代码和我的本地机器上运行它,它运行完美。

只是想知道我该如何调试生产站点?在生产站点上没有源代码,只有程序集......我可以将调试结果变为真?

否则我的其他选择是什么?

感谢

+0

,如果你打开调试如果您有记录,你可以得到黄屏与特定错误 – Jorge

+1

- 看看你的日志,如果你做了什么 - 看生产服务器上的事件查看器来查看详细的例外。 –

回答

1

您可以customErrors属性的mode值设置为RemoteOnly。这将显示外部访问者的正常自定义错误消息,但是如果您在实际服务器上浏览页面,它将向您显示详细的.NET黄色死亡屏幕。

MSDN:http://msdn.microsoft.com/en-us/library/h0hfz6fc(v=vs.85).aspx

..和是的,你可能还需要设置debug="true"在web.config中,而你做到这一点(但将其设置回之后)。

您还可以检查服务器上的事件日志,以获取详细的异常消息,这些消息会提供有关问题的提示。

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" /> 
1

<compilation debug="true"> </compilation>(在你的web.config)。做把它关掉,同时将其部署到生产。

0

调试生产网站是一种艺术形式。通常情况下,有许多限制因素会阻止您在非生产网站上执行您的操作。例如,将调试器附加到进程中将是一个非常糟糕的主意!

这里有几点让你开始。

  1. 你应该有一个舞台或预生产网站。你的第一步应该是尝试在那里再现问题。如果你可以重现它,太棒了!请在分段站点上调试它。

  2. 系统提供了许多可打开的日志。 Windows事件日志会告诉你是否发生了灾难性事件。 IIS日志会告诉你Web请求是否甚至到达你的应用程序。 Fusion日志会告诉你是否有DLL丢失或无法绑定。等等

  3. 当日志看,记住,你的生产系统可能有不止一个节点。除了负载平衡器之外的所有网络节点之外的其他所有节点,确保在给定框中生成日志可能会有帮助。

  4. 希望应用与某种自己的(例如使用log4net的)的日志记录的写入。审计跟踪和调试日志应该可以帮助您识别问题。

  5. 使用秒表。如果发生错误的时间恰好为30或60秒,则系统中可能存在连接超时的情况。应用程序内部连接(例如数据库连接或Web服务)的客户端和服务器端点也将拥有自己的日志。更多内容来看待!

您的重点应该放在识别出现问题的特定组件和/或类上。一旦你将它缩小到足够大的程度,你可能需要直观地“浏览”你的代码来检测任何类型的逻辑错误。写下所有的输入变量,打开源代码控制,然后逐行问自己所有输入代码将做什么。

它可以是非常难以调试生产Web站点。祝你好运!

相关问题