8

当我启动调试器来调试我的网站时,我总是经常收到这个错误。我正在使用 Telerik 控件,通常错误出现在我的标签条中。这是我现在正在查看的错误示例:

Compiler Error Message: CS0433: The type 'ASP.controls_motorvehiclegeneral_ascx' exists in both 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_6wlqh1iy.dll' and 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_ro_sgchs.dll'

Source Error:

Line 48:     </telerik:RadTabStrip>
Line 49:     <telerik:RadMultiPage ID="RadMultiPageControls" Runat="server" SelectedIndex="0">
Line 50:     <telerik:RadPageView ID="PageGeneral" runat="server"><uc1:General ID="GeneralControl" runat="server" /></telerik:RadPageView>
Line 51:     <telerik:RadPageView ID="PageVehicle" runat="server"><uc1:VehicleList ID="VehicleList" runat="server" /></telerik:RadPageView>
Line 52:     <telerik:RadPageView ID="PagePerson" runat="server"><uc1:PersonList ID="PersonList" runat="server" /></telerik:RadPageView>

最困扰我的是,如果我一直按 F5,页面将刷新并正常工作。有时需要多次刷新才能做到这一点,而另一些则发生得很快。我无法在网上找到解决方案,因为大多数出现此错误的人正在从 VS2005 升级到 Web 应用程序,因此修复似乎是“删除您的 app_code 目录,并将 CodeFile= 更改为 CodeBehind= . 但是,CodeBehind 是旧的,不再使用了。

在这种情况下,我的“常规”选项卡上出现了错误,但是当它确实发生时,我的任何用户控件都可能发生这种情况。

有没有其他人在预编译页面上看到过这个?我正在使用 VS2008 SP1。

我看到的与此相关的另一个效果是,当我有一个带有数据源的 GridView 设置时,数据源发生了变化,但页面直到其他几个操作才更新,然后所有数据都被一次性填充...这让我觉得有某种缓存问题,或编译时,超时或什么的......

我正在使用 site.master 页面,并检查了 @Page 和 @Master 指令......只是为了论证,这里是它使用的编译器选项......

C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE> "c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe" /t:library /utf8output /R:"c:\WINDOWS\ Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\assembly\dl3\6614ff9a\005164fc_423cc801\PetersDatePackage.DLL" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.IdentityModel \3.0.0.0__b77a5c561934e089\System.IdentityModel.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\Microsoft. ReportViewer.Common\9.0.0.0__b03f5f7f11d50a3a\Microsoft.ReportViewer.Common.dll" /R:"C:\WINDOWS\assembly\GAC_32\System.EnterpriseServices\2.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll" /R:"c :\WINDOWS\Microsoft.NET\Framework\v2.0.50727\临时 ASP。NET 文件\statisticsweb\30c716d3\eebad209\App_Web_0-em44qa.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_6wlqh1iy.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_ro_sgchs.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\Microsoft. Build.Utilities\2.0.0.0__b03f5f7f11d50a3a\Microsoft.Build.Utilities.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.ServiceModel\3.0.0.0__b77a5c561934e089\System.ServiceModel.dll" /R:"c :\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\assembly\dl3\6fe979bb\0056bc44_4b94c701\Microsoft.Practices.EnterpriseLibrary.Common.DLL" /R:"C: \WINDOWS\assembly\GAC_32\System.Web\2.0.0。0__b03f5f7f11d50a3a\System.Web.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\assembly\dl3\ad70f8ed\0010f920_4b94c701\Microsoft.Practices .EnterpriseLibrary.Data.DLL" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.ServiceModel.Web\3.5.0.0__31bf3856ad364e35\System.ServiceModel.Web.dll" /R:"c:\WINDOWS\Microsoft. NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\assembly\dl3\d61e8194\009ae0bd_854ec901\Telerik.Web.UI.DLL" /R:"c:\WINDOWS\Microsoft.NET\Framework \v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\assembly\dl3\98ba2ae7\211fb135_e674c901\CoreAPI.DLL" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Web.Extensions\1.0. 61025.0__31bf3856ad364e35\System.Web.Extensions.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Management\2.0.0.0__b03f5f7f11d50a3a\System.Management.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3 \eebad209\assembly\dl3\62fa267e\9888875e_bb5cc901\AjaxControlToolkit.DLL" /R:"C:\WINDOWS\assembly\GAC_MSIL\Microsoft.Build.Framework\2.0.0.0__b03f5f7f11d50a3a\Microsoft.Build.Framework.dll" /R: "C:\WINDOWS\assembly\GAC_MSIL\System.Drawing\2.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ statisticsweb\30c716d3\eebad209\App_Code.nufffrfb.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Web.Services\2.0.0.0__b03f5f7f11d50a3a\System.Web.Services.dll" /R:"c: \WINDOWS\Microsoft.NET\Framework\v2.0.50727\临时 ASP。NET 文件\statisticsweb\30c716d3\eebad209\assembly\dl3\52f6447d\f90fd1c8_b475c901\StatisticsAPI.DLL" /R:"C:\WINDOWS\assembly\GAC_MSIL\System\2.0.0.0__b77a5c561934e089\System.dll" /R:"c :\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\assembly\dl3\955f38e7\982cdc0f_bc5cc901\Validators.DLL" /R:"C:\WINDOWS\assembly\GAC_MSIL \Microsoft.ReportViewer.WebForms\9.0.0.0__b03f5f7f11d50a3a\Microsoft.ReportViewer.WebForms.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Runtime.Serialization\3.0.0.0__b77a5c561934e089\System.Runtime.Serialization。 dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_nv7t8gs_.dll" /R:"C:\WINDOWS\assembly\GAC_32\ System.Data\2.0.0.0__b77a5c561934e089\System.Data。dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Configuration\2.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Design\2.0.0.0 __b03f5f7f11d50a3a\System.Design.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.WorkflowServices\3.5.0.0__31bf3856ad364e35\System.WorkflowServices.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System .Web.Mobile\2.0.0.0__b03f5f7f11d50a3a\System.Web.Mobile.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\assembly \dl3\a5daf5e0\0071b5e7_909cc701\Microsoft.Practices.ObjectBuilder.DLL" /R:"C:\WINDOWS\assembly\GAC_MSIL\Microsoft.ReportViewer.ProcessingObjectModel\9.0.0.0__b03f5f7f11d50a3a\Microsoft.ReportViewer.ProcessingObjectModel.dll" /R: "c:\WINDOWS\微软。NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_atcckswk.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Xml\2.0.0.0__b77a5c561934e089\System.Xml。 dll" /out:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_zva2jsmk.dll" /D:DEBUG /debug+ /optimize- /win32res:" c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\zva2jsmk.res" /nowarn:1659;1699;1701 /d:DBCONVERTPUBLIC;CRYSTALSUPPORT "c:\WINDOWS \Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_zva2jsmk.0.cs" "c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files \statisticsweb\30c716d3\eebad209\App_Web_zva2jsmk.1.cs" "c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_zva2jsmk.2.cs"

有人有什么想法我什至可以开始寻找吗?

4

10 回答 10

7

如上所述杀死卡西尼实例对我不起作用。 ScottGu 发布了有关此问题的信息

在 web.config 的编译部分设置 batch="false" 属性对我有用。

<configuration>

   <system.web>
       <compilation debug="false" batch="false"></compilation>
   </system.web>

</configuration>

这告诉 ASP.NET 将各个 .aspx/.ascx 文件动态编译成单独的程序集。这避免了触发异常的循环引用问题。

于 2010-05-20T22:47:52.063 回答
1

对我来说,关闭 IDE,关闭网站(IIS 或 Cassini),删除我所有的临时 asp.net 文件,启动 IDE 并进行完整编译就可以了。

于 2009-01-14T13:42:05.060 回答
1

在 IIS 中,您需要通过打开命令提示符并键入iisreset然后按 Enter 来重新启动它,但是如果您使用 Visual Studio Web 服务器(Cassini)中的构建,那么这不会解决您的问题。您可以通过键入(完全像这样,因为它的大小写敏感)来终止所有正在运行的 Cassini 实例:taskkill /f /im "WebDev.WebServer.exe"然后按 Enter。然后您将看到以下消息:SUCCESS: The Process "WebDev.WebServer.EXE" with PID <some #> has been terminated.

于 2009-03-02T16:18:01.837 回答
1

如果您有 VS2008 和 WEB 应用程序(不是 WEB 站点),则不能有名为 App_Code 的目录(您必须从中删除所有文件并将其移至根文件夹)并从项目中删除/排除该文件夹(App_Code)。App_Code 中的每个文件都将在调试/发布期间进行编译。- 这解决了我的 CS0433 问题。

于 2010-12-15T14:23:25.930 回答
1

我最近修复了这个错误。原因是项目中有一些文件或类声明了不止一次。就我而言,

error CS0433: The type 'usercontrol_ucManageNews' exists in both 
'c:\Users\DangLe\AppData\Local\Temp\Temporary ASP.NET Files\working\ed64f624\95e2038d\App_Web_kc2c2twy.dll' and 'c:\Users\DangLe\AppData\Local\Temp\Temporary ASP.NET Files\working\ed64f624\95e2038d\App_Web_0ywfoitp.dll'

因为在我的项目中有两个文件夹包含文件 ucManageNews.ascx

于 2011-12-08T00:28:57.323 回答
0

原因可能是您正在引用的其他一些 DLL 可能正在引用指定程序集的旧/新版本。所以应用程序的不同部分引用了不同版本的程序集。我也遇到了这样的问题。为了解决它,我强制应用使用新版本:

我将 web.config 中的所有引用都更改为指向较新的版本。就我而言,是 System.Web.Extensions 程序集导致了问题。 我将它们全部从 1.0.60125.0 更改为 3.5.0.0

接下来,我将这些行添加到我的 web.config中,这基本上告诉您的应用程序将对旧版本程序集的所有引用“转发”到新版本:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="bin;sitefinity\admin\bin" />
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Telerik.Security" publicKeyToken="dfeaee0e3978ac79" />
        <bindingRedirect oldVersion="3.2.1598.2" newVersion="3.5.1747.2" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Telerik.Cms.Web.UI" publicKeyToken="dfeaee0e3978ac79" />
        <bindingRedirect oldVersion="3.2.1598.2" newVersion="3.5.1747.2" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Telerik.Web.UI" publicKeyToken="121fae78165ba3d4" />
        <bindingRedirect oldVersion="2008.1.515.20" newVersion="2008.2.1001.20" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

我没有想出这个解决方案,但在我不记得的地方找到了它。但是,我认为我从来没有看到过为什么会发生这种情况的解释!

于 2009-02-13T14:45:38.547 回答
0

要修复这个错误,它相当简单,但需要一些很少使用的声明(困难的部分是挖掘正确的文档;)。

请参阅ECMA-334的第16.3节“外部别名指令

如果您控制“您的”源并链接到另一个程序集“他们的”二进制文件,但您不能更改(或不想改变太多:)命名空间/类型说明符(例如,你们都声明System)。实际上,我最近遇到了很多这样的问题,随着 CLR/DLR 的所有 Beta/Alpha/Version 更新,MS 在他们发布的命名空间中已经搅动了很多。

当您导入程序集“他们的”时,通常编译器会将其设置到全局(保留)命名空间中。在 MSVC 中,您转到程序集引用上的属性,转到它所说的“别名”,然后您可以指定一个新名称,不是全局名称。或者实际上是几个名字。

假设您使用“ global2 ”这个富有想象力的名称。

然后,您转到您的源文件并在任何命名空间声明之前的顶部 放置;

extern alias global2;
using global2::System;

然后,您的代码可以使用 global2 中的类型,例如“Int32”或其他类型,您仍然可以通过以下方式重命名它;

extern alias global2;
using global2::System;
using orig = System;
于 2009-05-31T20:54:06.733 回答
0

我刚遇到这个问题。事实证明,我不小心将文件从一个项目拖放到另一个项目,从而创建了一个副本。我花了一段时间才找到问题,因为这些文件隐藏在 Properties 文件夹中(我从不查看)。

无论如何,帮助我解决问题的是进入引发错误的文件,在错误的行上单击并“进行定义”。在定义中,您可以看到您正在查看的物理文件。如果它不是它应该是的,那么你就发现了你的问题。

我知道这是微不足道的,但它浪费了我大约 1 小时的时间,所以希望这些信息对任何人都有用。

于 2009-11-21T06:51:39.120 回答
0

顺便说一句,CodeBehind不老也不用!

CodeBehind=适用于 Web 应用程序中的页面(带有.Designer.cs文件),CodeFile=适用于网站中的页面(动态编译的程序集,因此没有.Designer.cs文件)

于 2010-05-20T22:51:56.517 回答
0

我今天在使用 Web 用户控件时遇到了这个问题,但发现将 CodeBehind="..." 更改为 Src="..." 是导致错误的原因。[链接]http://stevenoderayi.blogspot.com/2011/04/resolved-cs0433-type-user-control.html[/link]

于 2011-04-02T13:00:53.683 回答