当我使用内部Web服务器(而非IIS)从Visual Studio 2008 SP1运行Webapp时,收到上述错误。
完整错误(源文件 Default.aspx.cs ):
编译器错误消息:CS0433:类型’WebApplication3.Site1’在两个c:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \ root \ aa563bcf \ 59deedc0 \ App_Web_site1.master.cdcab7d2中均存在。 muczzy9v.dll’和’c:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \ root \ aa563bcf \ 59deedc0 \ assembly \ dl3 \ 44c3a3cf \ 80dd34ed_6968ca01 \ WebApplication3.DLL’
前面的完整警告:
警告:CS0436:在’c:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \ root \ aa563bcf \ 59deedc0 \ App_Web_default.aspx.cdcab7d2._tlkwdos.0中,类型’WebApplication3._Default’。 cs与’c:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \ root \ aa563bcf \ 59deedc0 \ assembly \ dl3 \ 44c3a3cf \ e096e61c_6568ca01 \ WebApplication3中的导入类型’WebApplication3._Default’发生冲突.DLL”。使用在’c:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \ root \ aa563bcf \ 59deedc0 \ App_Web_default.aspx.cdcab7d2._tlkwdos.0.cs’中定义的类型。
警告源指向中间文件 App_Web_default.aspx.cdcab7d2._tlkwdos.0.cs :
Line 162: Line 163: [System.Runtime.CompilerServices.CompilerGlobalScopeAttribute()] Line 164: public class default_aspx : global::WebApplication3._Default, System.Web.IHttpHandler { Line 165: Line 166: private static bool @__initialized;
我的问题是:这是从哪里来的?
该webapp(不是网站!)具有一个 Default.aspx 和一个 Site1.Master ,没有依赖关系。它们几乎是空的,asp:Label页面上有个。以前,此webapp运行良好。当我删除Default.aspx.cs中对主服务器的任何引用时,一切顺利。母版只有一些代码。
asp:Label
它实际上是许多“一劳永逸”的测试Webapp之一,因此我一点也不在乎。但是我之前从未见过这种情况,现在我很好奇该怎么做,然后我将代码复制到一个新项目中(清理解决方案无济于事)。
注意:我已经阅读了这篇文章和其他一些文章,但它们并不适用。
理论
如果此问题 不是 由应用程序中的错误引起的(例如,重复的类名):
在对应用程序的项目进行了更改(导致代码/参考/资源更改)之后,似乎会出现此问题。问题似乎出在此新版本的输出之内:由于各种原因,Visual Studio不会替换应用程序obj / bin文件夹的 全部 内容。这导致应用程序的bin文件夹中的至少某些内容已过期。
发生上述问题时,单独清除“ Temporary ASP.NET Files”文件夹并不能解决问题。它不能解决问题,因为下次访问您的应用程序时,应用程序的bin文件夹中的陈旧内容会被复制回到“ Temporary ASP.NET Files”文件夹中,从而导致问题继续存在。关键是删除所有现有文件并强制Visual Studio重建每个对象,因此,下次访问您的应用程序时,新的bin文件将被复制到“ Temporary ASP.NET Files”文件夹中。
解
说明