2008-10-08 61 views

回答

0

我以前也有这个问题。如果我没有记错它是由类似原因主要包括:

<%@ Page Inherits="_Default" %> 

或许

<%@ Page ClassName="_Default" %> 

或类似的东西。我不是100%确定它是哪个属性(这是一段时间)。

但是,在您的Page指令中查找_Default之类的内容,并将它们替换为您所有文件中的实际类名称。出于某种原因,ASP.Net并不总是正确地解释_Default,产生临时歧义引用。

0

前两次类似的答案,你会最有可能有一个现有页面的“复制和粘贴”副本同一个网站,这将包含相同的@页面指令,这将导致功能发生冲突(尤其是因为.Net中的所有内容都默认为部分类)。这个小宝石经常咬我。

只需更新“继承”指向特定于您的页面的内容(即:您的页面名称以下划线作为前缀 - 因为它更常见,而不是保证唯一),并确保您避难没有两个公共部分类在不同的代码隐藏文件中命名相同(否则_Default [default.aspx中的Page_Load]将与_Default [Default.aspx的副本]中的Page_Load冲突)

14

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

简而言之,您的类被称为MyModule。但是,如果您未在@Control指令中指定ClassName属性,则编译器可能会将_ascx附加到控件的类,这会导致MyModule_ascx。由于该页面找不到MyModule_ascx,因此它在您的脸上炸开了。你需要明确告诉它的类名...

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

这对我来说诀窍。谢谢! – Anthony 2010-01-03 15:55:42

+0

我有同样的问题,并用它作为修复。我无法确定它是否会随着问题的发生而随机发生,但它看起来像是我收到这些错误的最合理的解释。谢谢!! – 2012-02-13 22:02:47

1

我刚刚遭受了这一点。那些工作正常并且几个月未触及的东西在一些无关的更新之后开始随机失败。我会重新编译,问题会消失,只会重新出现在别的地方。

我似乎已通过清除ASP.NET临时文件夹(例如,C:\ Windows \ Microsoft.NET \ Framework \ v2.0.xxxxx \ Temporary ASP.NET文件。这需要重新启动IIS以真正清除它。

更新:我尝试添加tempDirectory="e:\someotherfolder"到web.config的compilation元素,似乎已经取得了一些成功。还添加了batch="false",但不确定这是否有效。

18

我最近遇到了这个问题,它只发生在一台服务器上,即使所有的都运行相同的代码。我彻底调查了这个问题,以确保有其他用户控件的冲突名称,临时文件已被清除等。

解决问题的唯一方法(似乎是永久性的)是更改编译元素的批处理属性假在web.config中的建议以下链接:

http://personalinertia.blogspot.com/2007/06/there-bug-in-compiler.html

<compilation debug="true" batch="false"> 

我坚信,这其实是在编译器中的错误在该网站上的建议。

0

也用MasterPages在最初.NET 1.1和2.0项目以及后来转换的项目上运行。在这两种情况下,@MasterType指令都引用了虚拟路径。我更改为<%@ MasterType TypeName =“MasterPages_MasterPage”%>,清理解决方案,问题就消失了。 HTH

0

试图改变web.config中,设置一批假

<compilation batch="false"> 
</compilation> 
1

对于我这种错误是红鲱鱼。实际上,其中一个用户控件存在由.NET 2.0,0至4.5迁移引起的错误,这些错误必须在代码中修复,但VS会抛出这个误导性的错误消息。经过多次尝试升级项目后,它终于开始在实际的代码行上出现错误,但是我不知道如何在经历了几个小时的挫折和毫无结果地尝试应用来自所有Internet的解决方案之后再现此问题。

相关问题