我遇到的问题与此问题非常相似: ASP.NET 3.5 Web Site stopped importing System namespace by default
我在VB.NET中有一个ASP.NET 3.5网站(非应用程序)项目,可编译精美的Visual Studio 2008.当我在Visual Studio 2012(或2010)中打开项目时,我得到一些非常奇怪的错误看起来好像缺少System和System.Data名称空间。在大多数情况下,所有这些错误都发生在App_Code文件夹中。在某些情况下,我可以在类中添加Imports系统并修复它。我希望这个网站在VS 2012中打开后立即编译。
以下是我得到的错误的样本:
CommandType
未声明。由于其保护级别,它可能无法访问。DateTime
未声明。由于其保护级别,它可能无法访问。HttpContext
未声明。由于它可能无法访问
保护等级。我相信VB.NET确实做了一些隐式导入,但似乎我错过了它们。
编辑:该站点在IIS中运行良好,不会产生任何编译错误。
我的web.config文件的编译标记如下所示:
<compilation defaultLanguage="vb" debug="true" batch="false">
<assemblies>
<add assembly="System.Runtime.Serialization.Formatters.Soap, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Entity.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
<buildProviders>
<add extension=".edmx" type="System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider"/>
</buildProviders>
</compilation>
我曾尝试添加System和System.Data但它没有帮助。它应该从C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG中的web.config文件的默认程序集中提取。正如我之前所说,同样的解决方案(尽管它是一个网站项目)建立在VS 2008中。
编辑:
我已将其缩小到我的BIN文件夹中的几个DLL,每个DLL都会导致此错误(如果我将其中一个添加回来,则会再次出现错误)。其中一个麻烦的DLL是Recaptcha.dll。这个DLL并没有什么特别之处,它在VS2008中工作正常,并且可以在IIS中正常加载。
答案 0 :(得分:0)
您是否在网站项目中引用了网络服务?当webservice的引用包括webservice中的所有类型时,我遇到了问题。这是因为在服务引用设置上选中了“在引用的程序集中重用类型”复选框。
答案 1 :(得分:0)
我在asp.net MVC中发现了一个非常类似的问题。在我的情况下,我无意中复制了配置文件中的一个部分。
我认为这是<system.web>
导致Visual Studio混乱的部分 - 编译工作正常,但我在错误列表中收到了异常错误。可能是类似的东西?检查您的web.config和您的视图web.config文件是否有重复的部分?
答案 2 :(得分:0)
我曾多次遇到过这个问题。总是证明我们在IDE不喜欢的应用程序代码(类对象)中犯了一些小错误,但编译器将编译并运行而不会出错。很多时候我们做一个方法签名,如:
Public Sub Foo (byval Parm1 as long, _
byval Parm2 as long,
byval Parm3 as long)
我们忘记了一个“_”,就像我上面用Parm2的例子一样。
追踪他们可能是一种真正的痛苦。