BC30560:«default_aspx» неоднозначен в пространстве имен «ASP».

StackOverflow https://stackoverflow.com/questions/899130

  •  23-08-2019
  •  | 
  •  

Вопрос

Когда я скомпилировал свою последнюю программу 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

Это было полезно?

Решение

Хорошо, вот что я нашел, потратив три дня на эту проблему.

Наконец я решил, что если я удалю все проекты из решения, кроме одного (который вызывал проблемы), я смогу изолировать его в default.skin.Проблема казалась очень странной, потому что она начинала исчезать, если я удалял определенные строки из этого файла.Однако это было непоследовательно, и проблема возникала и исчезала случайно.

Поэтому потеряв всякую надежду исправить это в коде, я решил попробовать по-другому.Я изменил параметр команды aspnet_compiler с переключателя -prefix (для каждой папки создается dll) на -o (весь скомпилированный интерфейс помещается в одну dll), проблема исчезла!!!

Похоже, проблема связана с какой-то ошибкой в ​​компиляторе aspnet_compiler.В этой версии это каким-то образом сработало, чего я не мог понять.

Я подумываю о переходе на более стабильную версию asp.net 3.5SP1 (или, может быть, дождусь asp.net 4.0). Есть предложения?

Другие советы

Я только что решил эту проблему с помощью следующей ссылки: http://www.netomatix.com/development/usercontrols2.aspx

Добавьте это на страницу aspx или ascx ClassName="MyModule"

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

Я столкнулся с этой проблемой при использовании проекта при изменении имени/пространства имен библиотеки, на которую ссылается потребляющий проект.

Проблема заключается в том, что в папке Bin проекта есть копия DLL с каждым именем/именем пространства имен.

Удаление папки Bin потребляющего проекта и повторная сборка решены.

Я обнаружил, что смешивание пространств имен может действительно запутать ситуацию.

Лучший способ очистить его — удалить все объявления пространств имен в вашем веб-проекте и убедиться, что они согласованы в зависимых проектах.Не забудьте проверить свойства проекта и сгенерированные файлы .designer.vb.

Кроме того, похоже, что у вас есть каталог верхнего уровня с именем ASP - это, вероятно, тоже не помогает.Я бы полностью избавился от этого каталога и посмотрел, поможет ли это решить проблему.Некоторое время назад я сообщил об этом как об ошибке в MS и даже предоставил им воспроизводимый пример, но так и не получил от них ничего в ответ.

Я решил эту проблему, поместив пространство имен над классом.

Namespace yournamespace

Public Class yourclass name

end class

end Namespace

Вам необходимо убедиться, что пользовательский элемент управления также копируется вместе со страницей на ваш тестовый сервер.

У нас была такая же проблема на наших тестовых серверах.Мы нашли дубликат dll нашего приложения в bin-файле.Ее имя немного отличалось (отсутствовало единственное «.») от исходной dll, но содержало те же типы.Мы удалили его и все снова заработало.

После того, как я проверил те же пункты, что и Сэмюэль:

[*] Дефолт нигде не определяется дважды
[*] На другом компьютере всё работало неделю назад
[*] Среди скомпилированных файлов нет старых файлов.Также я много раз очищал временные файлы.
[*] Я пробовал использовать другие файлы aspx, и все они выдают неоднозначную ошибку (ошибка в разных исходных файлах...)
[*] Первоисточник работает отлично!только ошибка отображается в скомпилированном коде.
(...)

Я просто оставил свой код оригинальным в VS-2015 и в окне CMD выполнил:

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

И все работало нормально, без каких-либо ошибок.

Последующие компиляции в среде VS-2015 также прошли нормально.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top