Asp.net 为什么这会导致出现Windows身份验证而不是异常?

Asp.net 为什么这会导致出现Windows身份验证而不是异常?,asp.net,vb.net,Asp.net,Vb.net,好吧,在花了一天的时间调试了一段代码中的一个愚蠢的键入错误之后,我很好奇为什么会发生特定的操作而不是异常 首先是问题代码 Public Sub InstantiateIn(ByVal container As Control) Implements ITemplate.InstantiateIn Dim hl As New HyperLink AddHandler hl.DataBinding, AddressOf Me.BindData container.Contro

好吧,在花了一天的时间调试了一段代码中的一个愚蠢的键入错误之后,我很好奇为什么会发生特定的操作而不是异常

首先是问题代码

Public Sub InstantiateIn(ByVal container As Control) Implements ITemplate.InstantiateIn
    Dim hl As New HyperLink
    AddHandler hl.DataBinding, AddressOf Me.BindData
    container.Controls.Add(container)
End Sub
明显的问题是,我们正在尝试将容器添加到自身中,这可能会导致异常。但是,它会导致页面提示用户输入其登录凭据(浏览器中的Windows身份验证)

有人知道为什么会出现这种情况,为什么没有发生异常或其他事情吗

编辑


出现此问题的原因是,由于此错误,该页面将变得无用,并提示Windows登录,并且不会出现堆栈溢出异常或任何其他异常。

您希望异常发生在哪里?在这段代码中,没有理由生成异常。尽管在控件中嵌套控件可能不合逻辑,但它仍然有效。它不会很好地绘制,除非绘制/绘制层特别注意嵌套,否则可能会导致堆栈溢出/无限循环。但这不会发生在这里,而是在布局/绘制期间

控件可以任意嵌套;任何控件都可以有其他控件的集合(我相信原因很明显)。也就是说,将给定对象的引用添加到自身内的此类对象集合中并没有什么“错误”。虽然多余,但并不例外。

对问题进行了澄清,可能是在布局/绘制期间,但最终结果是此代码未生成异常,但提示用户进行windows身份验证。对问题进行了澄清,可能是在布局/绘制期间,但是最终的结果是,这段代码没有生成异常,而是提示用户进行windows身份验证。@OP:如果你对任何有建设性的答案投赞成票,那没关系。但你可能需要等一段时间,同时取消投票。你的问题只显示在“无动力”视图中,而没有经过投票的回答,而且很多人都遵循这个视图。@Joel不,没有我的投票……我可能不得不放弃这个。