MSDN(转)调试 Web 部件

调试 Web 部件

发布日期: 6/1/2004 | 更新日期: 6/1/2004

Suraj Poozhiyil

Microsoft Corporation

2003 5

适用于:
Microsoft Windows SharePoint Services 2.0
Microsoft Visual Studio .NET

摘要:了解如何使用 Microsoft Visual Studio .NET 来调试现有的 Web 部件程序集。(5 页打印页)

本页内容

简介

打开项目和设置断点

附加到 ASP.NET (W3wp) 进程

调试

提示和技巧

从远程计算机开发和调试

保存输出内容时遇到的问题

小结

简介

您可以使用 Microsoft Visual Studio .NET 来构建 Web 部件程序集,这些程序集与用托管代码编写的 ASP.NET 服务器控件程序集相同。编写这些控件之后,下一步是测试和调试它们。本文描述了如何将系统配置为调试自定义的 Web 部件项目。

前提条件

熟悉 Microsoft Windows SharePoint Services 2.0

了解如何创建 Web 部件

熟悉 Web 部件的基础结构

已完成要调试的 Web 部件项目

系统要求

要调试 Web 部件程序集,您需要:

Windows SharePoint Services 2.0

Visual Studio .NET7.0 7.1 版)

对映射到运行 Windows SharePoint Services 的虚拟服务器的文件系统目录(例如,C:\Inetpub\wwwroot 及其子目录)的写入权限。

调试 ASP.Net 进程的权限

返回页首

打开项目和设置断点

首先启动 Visual Studio,加载您的项目,设置适当的文件,然后设置用于调试的 SharePoint 站点。

以下过程假设 Web 部件程序集使用默认的 SharePoint 站点进行调试。

设置用于调试的站点

1.

单击开始,指向所有程序,指向“Microsoft Visual Studio .NET”,然后单击“Microsoft Visual Studio .NET”

2.

Visual Studio .NET 中,单击文件,然后单击打开

3.

浏览至要调试的 Web 部件项目,然后单击打开

4.

右键单击项目名称,然后单击属性

5.

在导航树中,双击配置属性

6.

输出下,验证输出路径的值是否与下行相匹配:

本地驱动器:\InetPub\WWWRoot\bin\

7.

确保在安全控件列表中启用了该 Web 部件程序集和类型。要进行此操作,请执行以下步骤:

1.

Windows 资源管理器中,浏览至以下文件夹:

本地驱动器:\InetPub\WWWRoot\bin\

2.

双击 Web.config 文件。

3.

Web.config 文件中,搜索 标记。

4.

验证您的程序集是否作为安全控件列出。如果它没有作为安全控件列出,请将下行添加到安全控件列表中。

<SafeControl Assembly="assembly_name, Version=assembly_version,

Culture=assembly_culture, PublicKeyToken=assembly_public_key_token"

Namespace="assembly_namespace" TypeName="*" Safe="True"/>

8.

保存并关闭文件。

设置断点

使用 Visual Studio.NET 打开自定义 Web 部件的代码文件。

在其中一个自定义的 Web 部件文件中,右键单击要在其中添加断点的行,然后单击插入断点。例如,您可能希望在 RenderWebPart 方法中插入一个断点。

重复上述步骤,在该文件中所有适当的位置设置断点。

重复第 1 步和第 2 步,在每个自定义的 Web 部件文件中设置断点。

返回页首

附加到 ASP.NET (W3wp) 进程

在成功打开项目并设置适当的断点之后,下一步是附加到 W3wp.exe 进程。

附加到 ASP.NET 进程:

1.

在默认的 SharePoint 站点上创建一个 Web 部件页。

2.

将该 Web 部件添加到页面中。

3.

将调试程序附加到 W3wp 进程。要进行此操作,请执行以下步骤:

4.

Visual Studio .NET 调试菜单上,单击进程

1.

验证显示系统进程复选框已选中。

2.

验证显示所有会话中的进程复选框已选中。

3.

可用进程下,单击进程列表中的 W3wp.exe,然后单击附加

4.

选择要调试的程序类型下,选择公共语言运行库,然后单击确定

5.

单击关闭

返回页首

调试

附加到 W3wp 进程之后,您可以对代码进行调试。为此,请使用 Internet Explorer 打开包含新 Web 部件的测试页。在该页面呈现时,控件会切换到 Visual Studio 调试程序(取决于断点的位置)。现在,您可以使用调试模式来检查 Web 部件的功能。

返回页首

提示和技巧

调试 Web 部件代码可以帮助识别潜在的代码错误,但是调试并不能解决所有潜在的问题。例如,当 Web 部件页引用的程序集找不到时,调试可能无法解决该问题。如果出现这种情况,您可以使用以下两个策略来解决该问题。

使用 CallStack 属性

Windows SharePoint Services 可替代 CallStack 属性,该属性位于 Web.config 文件中。CallStack 属性控制当 ASP.NET 处理向所有本地和远程客户端发送页面的请求时,如果发生系统级异常,是否显示调用堆栈和异常消息。在默认情况下,Windows SharePoint Services 禁用 CallStack 属性,并显示一组有限的异常以防信息泄漏。要在发生异常时接收调用堆栈和异常消息,请启用 CallStack 属性。

启用 CallStack 属性

1.

Windows 资源管理器中,浏览至以下文件夹:

本地驱动器:\InetPub\WWWRoot\bin\

2.

双击 Web.config 文件。

3.

Web.config 文件中,搜索 元素。

4.

<SharePoint>元素中,找到<SafeMode MaxControls="50" CallStack="false"/> 标记并将其更改为<SafeMode MaxControls="50" CallStack="true"/>

5.

保存并关闭文件。

现在,在发生异常时,您将收到 ASP.NET 异常消息和堆栈跟踪信息。

CallStack 属性可为所有的本地和远程客户端启用此功能。

使用 ASP.NET 中的跟踪功能

您可以使用 ASP.NET 中的跟踪功能来监视在其上编程的服务器的环境。您可以针对特定页面或整个应用程序使用跟踪功能。您无需为远程客户端启用跟踪功能,即可在本地服务器计算机上使用该功能。

在本地服务器上启用 ASP.NET 跟踪功能

Windows 资源管理器中,浏览至以下文件夹:

本地驱动器:\InetPub\WWWRoot\bin\

双击 Web.config 文件。

Web.config 文件中,搜索 元素。

<system.web>元素中,添加下行:

<trace enabled="true" pageOutput="true"/>

保存并关闭文件。

环境信息现在会出现在包括该 Web 部件的测试页面的底部。有关如何使用 ASP.NET 中跟踪功能的详细信息,请访问以下 MSDN 网站:.NET Framework Developer's Guide: ASP.NET Trace

返回页首

从远程计算机开发和调试

要使用远程计算机进行开发和调试,请执行以下步骤。

要执行以下步骤,您必须有一台运行 Visual Studio .NET 的客户端计算机 (Computer_A) 和一台运行 Windows SharePoint Services 的服务器计算机 (Server_B)

1.

Server_B 上,共享宿主 SharePoint 虚拟服务器的目录。在默认情况下,Windows SharePoint Services 虚拟服务器映射到以下目录:

本地驱动器:\InetPub\wwwroot

2.

确保您具有此目录及其子目录的读取和写入权限。

3.

Server_B 上,共享 Microsoft.SharePoint.dll 文件所在的目录。在默认情况下,Microsoft.SharePoint.dll 文件位于以下目录中:

本地驱动器:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\60\ISAPI

4.

确保您具有此目录的读取权限。

5.

Computer_A 上,执行以下步骤:

1.

单击开始,指向所有程序,指向“Microsoft Visual Studio .NET”,然后单击“Microsoft Visual Studio .NET”

2.

Visual Studio .NET 文件菜单上,单击打开

3.

浏览至要调试的 Web 部件项目,然后单击打开

4.

右键单击该项目名称,然后单击属性

5.

在导航树中,双击配置属性

6.

输出下,验证输出路径的值是否与下行相匹配:

Server_B 上的远程驱动器:\InetPub\WWWRoot\bin\

7.

Windows 资源管理器中,浏览至以下文件夹:

Server_B 上的远程驱动器:\InetPub\WWWRoot\bin\

8.

双击 Web.config 文件。

9.

Web.config 文件中,搜索 标记。

10.

验证您的程序集是否作为安全控件列出。如果没有作为安全控件列出,请将下行添加到安全控件列表中。

<SafeControl Assembly="assembly_name, Version=assembly_version,

Culture=assembly_culture, PublicKeyToken=assembly_public_key_token"

Namespace="assembly_namespace" TypeName="*" Safe="True"/>

11.

保存并关闭文件。

6.

Server_B 上,安装并配置远程调试服务。

有关远程调试的详细信息,请访问以下 MSDN 网站:Visual Studio: Setting Up Remote Debugging

返回页首

保存输出内容时遇到的问题

您在调试或修改程序集时,可能会收到以下错误消息:

Unable to new file_name.dll after compilation.(编译后无法替换文件名.dll。)

如果 W3wp.exe 进程锁定了 InetPub\WWWRoot\bin 目录中程序集的旧副本,就可能出现此行为。要解决此问题,请使用任务管理器来结束 W3wp.exe 进程,重新编译该程序集,然后再重新执行该调试进程。

返回页首

小结

Windows SharePoint Services Web 部件是 ASP.NET 服务器控件。因此, Web 部件的调试进程类似于 ASP.NET 服务器控件的调试进程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值