【发布时间】:2011-02-05 11:16:50
【问题描述】:
解决方案:
我还同时移动了 ashx 和 asmx 文件。 WebService/WebHandler 指令的 Class 属性指向了错误的命名空间。这个故事的寓意是确保您查看 all as*x 文件的标记,方法是右键单击它们并选择“查看标记”来更改命名空间。
我遇到了与this question 和this link 相同的问题,但没有一个答案能解决我的问题。 (编辑:设置 web.config 批处理属性有效,但这是一种掩饰,而不是解决方案)
我遇到的问题是我从根目录移动到同一 Web 应用程序项目中的子目录的用户控件。在我移动它之前它曾经工作得很好。当我移动它时,它开始给我错误消息。
这是说类名存在于Temporary ASP.NET Files 中的两个dll 文件中。果然,当我打开Reflector时,它在两个dll中。
如果我重命名类和 ascx 文件,一切正常。在我的整个应用程序的任何文件中都没有使用原始名称。当我重命名文件时,我使用 Reflector 打开了 Temporary ASP.NET Files 中的所有 dll 文件,并且不存在对原始类名的引用。
那么这个幻像引用来自哪里,我该如何解决这个问题?
更新:我从字面上 grep 了解决方案的工作目录中的每个文件和旧类名的临时目录,并删除了包含它的每个文件。然后我重命名回原来的损坏名称,但我仍然收到错误。
“/”应用程序中的服务器错误。 编译错误描述:一个 编译过程中发生错误 提供服务所需的资源 要求。请查看以下内容 具体错误详情并修改您的 源代码适当。
编译器错误消息:CS0433:类型 'ASP.dashboard_badusercontrol_ascx' 存在于 'c:\Docunts 和 设置\我\本地 设置\临时\临时 ASP.NET 文件\root\3c2b7e1f\2e8a7620\App_Web_badusercontrol.ascx.a57ad085.iljdmp1p.dll' 和 'c:\Docunts and Settings\me\Local 设置\临时\临时 ASP.NET 文件\root\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 和 设置\我\本地 设置\临时\临时 ASP.NET 文件\root\3c2b7e1f\2e8a7620\App_Web_foo.aspx.a57ad085.1nw6dais.0.cs 线路:1100
编辑: 好的,所以我对有效和无效的方法进行了更多测试。 假设原始文件名是命名空间“MyNamespace”中的“BadUserControl.ascx”。
我将文件移动到名为“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”。 我在同一命名空间中的页面上有 1 个注册指令:
<%@ 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" %>
【问题讨论】:
-
欢迎任何和所有调试建议,以赚取赏金。
-
能否请您提供您收到的确切编译错误消息?从您的描述中很难判断所涉及的 DLL 是生成的程序集还是 GAC/bin 程序集。
-
这里有错误信息。
标签: asp.net .net .net-3.5 exception-handling