如何查看MOSS未知错误?

有时我们在企业门户上做开发时会碰到如下错误:

"Unable to render content due to an error. Please contact your system administrator."

当然该错误不太明显。如果在事件查看器中没有相关信息,我们几乎不可能知道发生了什么。

要想得到更多信息,最简单的方法是在页面上打开调试。您需要完成以下步骤:

1. 把web.config(位于Local_Drive:\Inetpub\wwwroot\wss\VirtualDirectories\Port_Number)复制到安全的地方

2.编辑web.config

3.在<SafeMode MaxControls="200" CallStack="false" DirectFileDependencies="10" TotalFileDependencies="50"  AllowPageLevelTrace="false">行,设置CallStack="true" 

4.在<compilation batch="false" debug="false">行,设置debug="true"

5.在<customErrors mode="On" />行,设置customErrors mode="Off"

到此为止当您再次访问问题页面时,您应该可以看见更详细的错误信息,以及更重要的调用栈。从调用栈中大多数开发人员能够找到问题代码并修复它。如果仍然不够,我们可以调试网络组件的代码。要想调试C# 代码,我们需要在企业门户服务器上安装调试器。在我的示例中已安装了Visual Studio 2008。

要想调试,我需要完成以下步骤:

1.按照前文步骤编辑web.config

2.在Visual Studio 2008中,导航到目录:工具-〉连接到进程

3.确保选择了选项"显示所有用户进程"和"显示所有会话进程"(打勾)

4.在进程列表中找到w3wp.exe进程并连接到该进程(如果您有多个w3wp.exe,请参见最后的附录来找到正确的进程)

5.从C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\LAYOUTS\ep中打开有问题的网络控件代码(我们需要关注.cs文件)

6.在打开的控件中加入断点

7.在IE中再次打开有问题的页面

 

如何连接正确的w3wp.exe进程?

Microsoft SQL Server Reporting Services 2005是运行在Microsoft Windows Server Internet Information Services (IIS)上的。因此需要连接来调试的进程为IIS工作进程(w3wp.exe)。由于IIS每个应用程序池至少有一个工作进程,一台Windows服务器上通常有多个w3wp.exe进程。

要想查看哪个工作进程是为哪个IIS应用程序池服务,使用以下工具:

  • 在Windows Server 2003 (IIS 6.0)上运行:iisapp.vbs
  • 在Windows Server 2008 (IIS 7.0)上运行:appcmd.exe list wp

 

工具的输出如下:

C:\Windows\system32>iisapp.vbs
W3WP.exe PID: 2056 AppPoolId: AxReportServer
W3WP.exe PID: 5092 AppPoolId: EP - 39014

C:\Windows\system32\inetsrv>appcmd.exe list wp
WP "6916" (applicationPool: SharePoint Central Administration v3)
WP "1356" (applicationPool: AxReportServer)

一旦找到正确的w3wp.exe进程(基于应用程序池),使用PID(进程号)来连接正确的w3wp.exe进程。

 

原文地址:

http://blogs.msdn.com/b/emeadaxsupport/archive/2010/11/17/how-to-troubleshoot-enterprise-portal-error-unable-to-render-content-due-to-an-error-please-contact-your-system-administrator-quot.aspx

posted @ 2011-04-29 16:13  贝加  阅读(401)  评论(0编辑  收藏  举报