Решение:
Я также перемещал файлы ashx и asmx одновременно с этим. Атрибут Class в директивах WebService/WebHandler указывался на неправильное пространство имен. Мораль этой истории состоит в том, чтобы убедиться, что вы просмотрите разметку для файлов all as*x
, которые вы меняете пространство имен, щелкнув их правой кнопкой мыши и выбрав "Просмотр разметки".
Я испытываю ту же проблему, что и в этот вопрос и эта ссылка, но ни один из ответов не устранил мою проблему. (edit: настройка атрибута партии web.config работает, но это закрытие, а не решение)
Проблема, с которой я столкнулась, - это элемент управления пользователя, который я переместил из корневого каталога в подкаталог в рамках одного и того же проекта веб-приложения. Раньше он работал нормально, прежде чем я его перевел. Когда я переместил его, он начал давать мне сообщение об ошибке.
Говорят, что имя класса существует в двух файлах dll в Temporary ASP.NET Files. Конечно, когда я открываю Reflector, это в двух DLL.
Если я переименую файл класса и ascx, все будет хорошо. В любом из файлов во всем моем приложении не существует никаких исходных названий. Когда я переименую файл, я открыл все файлы dll в Temporary ASP.NET Files с Reflector, и никаких ссылок на исходное имя класса не существует.
Итак, откуда эта ссылка phantom, откуда я могу это исправить?
Обновление: я буквально grepped каждый файл в моей рабочей директории для решения и мой каталог temp для старого имени класса и удалял каждый файл, который содержал его. Затем я переименовал обратно в исходное, сломанное имя, и я все еще получаю ошибку.
Ошибка сервера в приложении "/". Ошибка компиляции: ошибка во время компиляции ресурса, необходимого для обслуживания этого запрос. Просмотрите следующие конкретные сведения об ошибках и исходный код.
Ошибка компилятора: CS0433: Тип 'ASP.dashboard_badusercontrol_ascx' существует как в c:\Docunts, так и в Настройки\я\Local Настройки \Temp\Temporary ASP.NET Файлы\корень\3c2b7e1f\2e8a7620\App_Web_badusercontrol.ascx.a57ad085.iljdmp1p.dll" и 'c:\Docunts и Settings\me\Local Настройки \Temp\Temporary ASP.NET Файлы\корень\3c2b7e1f\2e8a7620\App_Web_bhdqaimy.dll '
Ошибка источника:
Линия 1098: Строка 1099:
[System.Diagnostics.DebuggerNonUserCodeAttribute()] Строка 1100: конфиденциальная глобальный:: ASP.dashboard_badusercontrol_ascx @__ BuildControlMyBadUserControl() { Строка 1101:
глобальный:: ASP.dashboard_badusercontrol_ascx @__ctrl; Строка 1102:Исходный файл: c:\Docunts и Настройки\я\Local Настройки \Temp\Temporary ASP.NET Файлы\корень\3c2b7e1f\2e8a7620\App_Web_foo.aspx.a57ad085.1nw6dais.0.cs Линия: 1100
Изменить: Хорошо, поэтому я сделал еще несколько тестов на то, что работает и не работает. Скажем, исходное имя файла было "BadUserControl.ascx" в пространстве имен "MyNamespace".
Я переместил файл в каталог под названием "NewDirectory" и изменил пространство имен на "MyNamespace.NewDirectory". На моем жестком диске нет копий "BadUserControl.ascx" в другом месте. Я дважды проверял историю TFS, чтобы обеспечить ТОЛЬКО разницу в добавлении ".NewDirectory" к пространству имен в файлах разметки и кода.
Внутри этого пространства имен находятся два других пользовательских элемента управления с именем "OtherUserControl" и "AnotherUserControl".
Эта ситуация не выполняется: У меня есть 2 директивы реестра:
<%@ Register src="BadUserControl.ascx" tagname="BadUserControl" tagprefix="uc1" %>
<%@ Register src="OtherUserControl.ascx" tagname="OtherUserControl" tagprefix="uc2" %>
Эти ситуации работают:
-
Я сохраняю "BadUserControl.ascx" с именем as is. У меня есть директива 1 Register на странице в том же пространстве имен:
<%@ Register src="BadUserControl.ascx" tagname="BadUserControl" tagprefix="uc1" %>
-
Я меняю "BadUserControl.ascx" на "GoodUserControl.ascx" У меня есть 2 директивы реестра:
<%@ Register src="GoodUserControl.ascx" tagname="GoodUserControl" tagprefix="uc1" %> <%@ Register src="OtherUserControl.ascx" tagname="OtherUserControl" tagprefix="uc2" %>
-
2 Регистрируйте директивы без BadUserControl.ascx:
<%@ Register src="AnotherUserControl.ascx" tagname="AnotherUserControl" tagprefix="uc1" %> <%@ Register src="OtherUserControl.ascx" tagname="OtherUserControl" tagprefix="uc2" %>