编写代码就难免出错,而准确的定位到错误代码位置,并及时了解错误原因是提高编码效率的有效途径,此时就需要调试功能了。上一节我们创建了一个基于.net用户控件的macro,本节我们将探讨如何调试用户控件的服务器端代码。
笔者将以上节创建的RetrieveMobileCode为例介绍,首先将RetrieveMobileCodeControl.aspx.cs的代码该为:
MobileCodeWS mobileService = null;
var phoneNumber = txtPhoneNumber.Text;
var result = mobileService.getMobileCodeInfo(phoneNumber, string.Empty);
编译project,因为我们定义了编译后事件,所以相关文件会自动拷贝到网站目录中,刷新首页,输入手机号码,点击查询后,将得到如下界面:
接下来,笔者将介绍如何在vs中调试,以找出错误原因,首先在查询的事件开始处设置断点,如下图所示:
选择vs菜单栏中debug,再弹出的下拉菜单中选择Attach to Process...,弹出如下对话框:
确保底部的两个复选框都选中,选择w3wp进程,因为笔者电脑中iis版本为5.1,所以选择的是aspnet_sp进程,6.0及以上版本均选择w3wp进程,点击Attach后,重新刷新界面后,可以定位到断点处,如下图所示:
通过调试,就可以更正我们的代码了。除了在vs中调试之外,umbraco还提供了一种在浏览器中查看出错误信息的方法,即在url地址后添加umbdebugshowtrace=true属性。为了使用该属性,首先应该在web.config中将umbracoDebugMode设为true。在首页url后添加了该属性后,页面显示结果如下:
在结果中我们可以看到网页各元素的跟踪信息,我们不仅可以看到错误的提示,还可以通过观察页面各元素的加载时间来跟踪和改进页面的性能。 介绍完了调试,下一节笔者将对macro的参数做一个详细的介绍。