我将一个工作网站从现场环境拉到本地环境。除了我必须对 System.Data.XML 命名空间的引用之外,一切都运行良好,这给了我关于找不到它的标准错误。
我首先确认我在 IIS 中为该站点设置的应用程序池设置为 4.0。
接下来我在 Visual Studio 中检查了站点的目标框架,设置为 3.5。
然后我查看了 web.config 并确实找到了 System.Data.Linq(以及 System.Core)。
我尝试通过 Visual Studio 添加引用。这修改了我的 web.config 以添加具有此行的重复部分
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
接下来我尝试以 4.0 为目标,看看是否有任何改变。命名空间现在已正确提取,但对 LINQ 函数的任何调用都会失败。
web.config 的程序集部分如下
<compilation defaultLanguage="c#" debug="true">
<assemblies>
<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.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>