命名空间'System'中不存在类型或命名空间名称'Linq'(您是否缺少程序集引用?)

时间:2011-10-07 04:09:41

标签: .net asp.net visual-studio-2010 c#-4.0

我有什么“尝试过” 1.通过右键单击我的网站根目录以及单个页面,添加对System.Core,System.Xml.Linq,System.Data.Linq的引用。

  1. 通过在web.config中添加程序集,如下所示,

    <configuration>
      <connectionStrings>
       <add name="ConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data       Source=|DataDirectory|\PayrollSystem_DB.mdb" providerName="System.Data.OleDb"/>
    </connectionStrings>
    <location path="~/Styles/StyleSheet.css">
    <system.web>
        <compilation debug="true">
            <assemblies>
                <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            </assemblies>
        </compilation>
        <authentication mode="Forms">
            <forms loginUrl="~/Login/frmLogin.aspx"/>
        </authentication>
        <authorization>
            <deny users="?"/>
        </authorization>
    </system.web>
    </location>
    </configuration>
    
  2. 今天早些时候该项目工作正常。我添加

    时遇到了第一个web.config问题
      <authentication> and <authorization>
    

    标记我的CSS停止在登录页面上工作。然后我添加了如上所示的Location标签,它修复了我的css登录页面,但后来我开始在每个页面上得到这个Linq错误。

    我在网上搜索它被告知它是web.config问题所以我应该在web.config文件中添加System.core程序集的引用,但我仍然存在同样的问题。

3 个答案:

答案 0 :(得分:0)

您可以尝试清除WebsiteCache文件夹,看看是否有帮助。 (在删除其内容之前备份)

https://superuser.com/questions/65615/visual-studio-2008-does-not-remember-my-default-page-for-web-sites/65678#65678

答案 1 :(得分:0)

你的system.web位于内部。并且位置路径是CSS文件。所以,似乎你的程序集中有效地遗漏了你的程序集。它没有位置元素吗?或者没有system.web嵌入内部位置?

答案 2 :(得分:0)

R00T CaUsE

  1. 添加

    <authorization>
    
    带有上述问题所示代码的

    标签会使任何匿名用户访问除Login之外的任何页面,因为每个请求都将被重定向到LogIn Page,而服务器不允许其他内容,包括基本 CSS

  2. 网络上的建议解决方案1是添加

      <location> 
    

    标记适用于css,但会导致System.Linq出现问题。

  3. 这是StUpIdItY的解决方案。首先,因为没有任何工作,我保存web.config内容并删除web.config并从头开始重新创建,如下所示。

    步骤1

     <?xml version="1.0"?>
     <configuration>
    <system.web >
        <compilation debug="true" targetFramework="4.0"/>
        <authentication mode="Forms" >
            <forms  loginUrl="~/Login/frmLogin.aspx" />
        </authentication>
        <authorization >
            <deny  users="?"  />
        </authorization>
    </system.web>
    

    这第一步消除了Linq错误。

    第2步

    这种方法的问题是因为我使用外部CSS文件,它不会作为

    应用于LOGIN页面
          <authorization >
            <deny  users="?"  />
        </authorization>
    

    将阻止任何匿名用户。 您仍然可以通过将css放在单独的文件夹中并在外部CSS所在的文件夹下添加另一个web.config文件来使用CSS。在我的情况下,我的css文件是Styles文件夹下的StyleSheet.css。所以我刚刚将web.config添加如下。

    <?xml version="1.0"?>
    <configuration>
    <system.web>
        <authorization>
            <allow users="*"/>
        </authorization>
    </system.web>
    </configuration>
    

    现在我的css工作正常,我可以使用LogIn页面和Linq。

    感谢MICROSOFT在这些问题上浪费我的时间,但我希望将来可以为许多人节省挫折感。