在aspx中调试

时间:2012-09-12 15:56:02

标签: asp.net debugging

我正在尝试在我的代码后面调试一些代码作为aspx页面。我在页面和web.config中都将调试设置为true。

有人可以告诉我为什么a)断点永远不会触发,即使下拉列表被填满了b)为什么当我取消注释msgbox时它永远不会触发并且下拉列表不会填充。

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load

    If IsPostBack Then
        ddlCity.Items.Clear()
        Dim context As New enerteckEntities()

        'Dim query = context.DistinctCityFromZiptax(Convert.ToInt16(ddlState.SelectedValue))
        Dim query = From c In context.ziptaxes Where c.StateID = ddlState.SelectedValue Order By c.City Select c.City, c.ZipTaxId
        'MsgBox(query.Distinct().ToList())

        ddlCity.DataSource = query.Distinct().ToList()
        ddlCity.DataValueField = "ziptaxid"
        ddlCity.DataTextField = "City"
        ddlCity.DataBind()
    End If
End Sub

2 个答案:

答案 0 :(得分:0)

要达到一个断点,visual studio必须附加到托管aspx页面的进程。

这通常在Web应用程序项目中完成,方法是按F5键或单击“调试”菜单并单击“开始调试”。

答案 1 :(得分:0)

根据您的代码,您只能在PostBack之后执行此操作,而不是在初始页面加载时执行。

MsgBox永远不会出现,因为这不是WinForms应用程序!您不能在web.application中使用它。如果需要,可以使用Response.Write()或只是向页面添加虚拟标签并临时设置文本属性。这是同样的效果。

最简单的方法就是调试它。确保断点已满红点,并且您必须处于调试模式。如果您尝试从IIS进行调试,则必须附加到进程。如果你使用的是IIS7(我假设你是)那么你必须去: 调试菜单>附加到流程>找到名为“w3wp.exe”的进程并双击它。 你现在已经加入了。

如果在启动调试后断点不是完整的红点,则编译的代码和调试文件不匹配。做一个Rebuild而不是Build。除此之外,你可能会遇到一个时髦的问题,你可以尝试删除你的obj和bin文件夹(确保先保存任何第三方dll)。