BC30560:'default_aspx'在命名空间'ASP'中不明确

时间:2009-05-22 17:56:22

标签: asp.net ambiguous

当我编译我最新的asp.net程序并尝试在测试服务器上运行时,我收到此错误

Line 46:             Dim dependencies() As String
Line 47:             CType(Me,Global.System.Web.UI.Page).AppRelativeVirtualPath = "~/default.aspx"
Line 48:             If (Global.ASP.default_aspx.__initialized = false) Then
Line 49:                 dependencies = New String(0) {}
Line 50:                 dependencies(0) = "~/default.aspx"


Source File: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ocbuild\c0c442ff\f0292c99\App_Web_default.aspx.cdcab7d2.4ubu1wgu.0.vb    Line: 48 

扩展编译器输出时的详细错误...

Microsoft (R) Visual Basic Compiler version 8.0.50727.3053
for Microsoft (R) .NET Framework version 2.0.50727.3053
Copyright (c) Microsoft Corporation.  All rights reserved.

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ocbuild\c0c442ff\f0292c99\App_Web_default.aspx.cdcab7d2.4ubu1wgu.0.vb(48) : error BC30560: 'default_aspx' is ambiguous in the namespace 'ASP'.

            If (Global.ASP.default_aspx.__initialized = false) Then
                ~~~~~~~~~~~~~~~~~~~~~~~                            
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ocbuild\c0c442ff\f0292c99\App_Web_default.aspx.cdcab7d2.4ubu1wgu.0.vb(51) : error BC30560: 'default_aspx' is ambiguous in the namespace 'ASP'.

                Global.ASP.default_aspx.__fileDependencies = Me.GetWrappedFileDependencies(dependencies)
                ~~~~~~~~~~~~~~~~~~~~~~~                                                                 
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ocbuild\c0c442ff\f0292c99\App_Web_default.aspx.cdcab7d2.4ubu1wgu.0.vb(52) : error BC30560: 'default_aspx' is ambiguous in the namespace 'ASP'.

                Global.ASP.default_aspx.__initialized = true
                ~~~~~~~~~~~~~~~~~~~~~~~                     
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ocbuild\c0c442ff\f0292c99\App_Web_default.aspx.cdcab7d2.4ubu1wgu.0.vb(76) : error BC30560: 'default_aspx' is ambiguous in the namespace 'ASP'.

        Private Sub __BuildControlTree(ByVal __ctrl As default_aspx)
                                                       ~~~~~~~~~~~~ 
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ocbuild\c0c442ff\f0292c99\App_Web_default.aspx.cdcab7d2.4ubu1wgu.0.vb(100) : error BC30560: 'default_aspx' is ambiguous in the namespace 'ASP'.

            Me.AddWrappedFileDependencies(Global.ASP.default_aspx.__fileDependencies)
                                          ~~~~~~~~~~~~~~~~~~~~~~~                    
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ocbuild\c0c442ff\f0292c99\App_Web_default.aspx.cdcab7d2.4ubu1wgu.1.vb(31) : error BC30560: 'default_aspx' is ambiguous in the namespace 'ASP'.

            Return New ASP.default_aspx
                       ~~~~~~~~~~~~~~~~

我检查了一些事情,所有这些都证明没问题:

[*]默认值未定义两次     任何地方

[*]一切正常     在最后一个版本的一周后回来

[*]没有旧文件     仍然留在编译     文件。我也清除了临时     文件很多次。

[*]我试过了     与其他aspx文件和所有     他们提出了模棱两可的错误     (不同源文件中的错误......)

[*]原始资源仅适用     精细!只有错误显示在     编译代码。

有关如何解决这种歧义的任何想法或任何线索。

由于 SK

8 个答案:

答案 0 :(得分:3)

好的,这是我在这个问题上花了三天后发现的。

最后我想,如果我从解决方案中删除了除了一个之外的所有项目(导致问题),我可以将它隔离到default.skin。问题似乎非常不稳定,因为如果我从这个文件中删除某些行,它就会开始消失。然而,这并不一致,问题随机而来。

因此,在失去修复代码的所有希望后,我决定以另一种方式尝试。我将aspnet_compiler命令的选项从-prefix开关(为每个文件夹创建了一个dll)更改为-o(所有已编译的ui都放在一个dll中),问题就消失了!!!

似乎问题是由于aspnet_compiler中的一些错误。它在这个版本中以某种方式被触发,我无法弄明白。

我正在考虑转向更稳定的asp.net 3.5SP1(或者等待asp.net 4.0)任何建议?

答案 1 :(得分:2)

我刚刚通过以下链接解决了这个问题:http://www.netomatix.com/development/usercontrols2.aspx

在aspx或ascx页面上添加它ClassName =“MyModule”

   <%@ Control Language="vb" AutoEventWireup="false" CodeBehind="MyModule.ascx.vb" ClassName="MyModule" %>

答案 2 :(得分:0)

我发现混合命名空间可能会让事情变得混乱。

清理它的最佳方法是删除Web项目中的所有命名空间声明,并确保它们在依赖项目中保持一致。不要忘记检查项目属性和生成的.designer.vb文件。

此外,听起来你有一个名为ASP的顶级目录 - 这可能也没有帮助。我完全摆脱了该目录,看看这是否有助于解决问题。我曾经向MS报告这是一个错误,甚至为他们提供了一个可重现的例子,但从来没有听到任何回复。

答案 3 :(得分:0)

我通过将名称空间放在类

之上来解决了这个问题
Namespace yournamespace

Public Class yourclass name

end class

end Namespace

答案 4 :(得分:0)

在更改使用项目引用的库的名称/命名空间时,我在使用项目时遇到了此问题。

问题是消耗项目Bin文件夹包含每个名称/命名空间名称的DLL副本。

删除消耗项目Bin文件夹并重建已解决。

答案 5 :(得分:0)

您需要确保用户控件也与页面一起复制到测试服务器。

答案 6 :(得分:0)

我们在测试服务器上也遇到了同样的问题。我们在bin文件中找到了我们的应用程序dll的副本。它的名称与原始dll略有不同(缺少单个“。”),但包含相同的类型。我们将其删除,一切又开始正常工作。

答案 7 :(得分:0)

我检查了与塞缪尔相同的物品:

[*]默认值在任何地方都没有定义两次
[*] 1周前一切都在其他计算机上运行
[*]没有旧文件仍保留在已编译文件中。我也多次清除了临时文件。
[*]我尝试了其他aspx文件,但它们都给出了模棱两可的错误(不同源文件中的错误...)
[*]原始来源工作正常!只有错误会显示在已编译的代码上。
(...)

我只是让我的代码在VS-2015中执行,并在执行的CMD窗口中显示:

C:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_compiler -v / -p "C:\inetpub\wwwroot\projectFolder"

一切正常,没有任何错误。

在VS-2015环境中进行后续编译也可以。