8

当我编译我最新的 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
                       ~~~~~~~~~~~~~~~~

我检查了一些东西,结果都没有问题:

[*] 默认值没有在任何地方定义两次

[*] 1 周前的最后一个版本一切正常

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

[*] 我尝试过使用其他 aspx 文件,但它们都给出了模棱两可的错误(不同源文件中的错误...)

[*] 原始来源工作得很好!只有错误显示在编译的代码上。

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

谢谢SK

4

8 回答 8

4

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

将此添加到 aspx 或 ascx 页面 ClassName="MyModule"

   <%@ Control Language="vb" AutoEventWireup="false" CodeBehind="MyModule.ascx.vb" ClassName="MyModule" %>
于 2012-12-06T09:54:39.620 回答
3

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

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

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

看来问题是由于 aspnet_compiler 中的一些错误造成的。它以某种我无法弄清楚的方式在这个版本中被触发。

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

于 2009-05-24T15:42:06.783 回答
2

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

问题是使用项目 Bin 文件夹具有每个名称/命名空间名称的 DLL 副本。

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

于 2015-02-12T18:00:53.880 回答
0

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

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

此外,听起来您有一个名为 ASP 的顶级目录 - 这也可能无济于事。我会完全摆脱那个目录,看看这是否有助于解决问题。不久前我确实将此作为错误报告给 MS,甚至为他们提供了一个可重现的示例,但从未收到他们的任何回复。

于 2009-05-22T18:06:56.010 回答
0

我通过将命名空间放在类之上解决了这个问题

Namespace yournamespace

Public Class yourclass name

end class

end Namespace
于 2013-04-10T22:00:34.513 回答
0

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

于 2017-12-20T09:19:03.263 回答
0

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

于 2018-11-16T08:31:16.447 回答
0

在我检查了与塞缪尔相同的项目后:

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

我只是让我的代码在 VS-2015 和 CMD 窗口中执行:

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

一切都运行良好,没有任何错误。

后续在 VS-2015 环境下编译也OK。

于 2019-03-06T13:17:25.133 回答