19

CS0234:命名空间“System”中不存在类型或命名空间名称“DirectoryServices”(您是否缺少程序集引用?)

此页面工作正常,直接显示来自服务的记录,没有错误。但现在它给出了上述错误。

 <asp:GridView ID="gvUsers" runat="server" AutoGenerateColumns="false" DataSourceID="odsUsers"
                                    AllowPaging="true" AllowSorting="true" Width="100%">
<Columns>
 <asp:TemplateField HeaderText="User Name">
 <ItemTemplate>

<%#((System.DirectoryServices.DirectoryEntry)Container.DataItem).Properties["userPrincipalName"].Value%>

   </ItemTemplate>
   </asp:TemplateField>
/Columns>
</asp:GridView>

项目构建成功,但是当我打开页面时,它给出了错误

4

9 回答 9

42

添加目录服务引用后,右键单击reference并转到properties. 设置"CopyLocal"为真。

于 2012-08-07T15:33:05.807 回答
18

我很确定我完全错误地将我的应用程序从我的开发框“发布”到我的 IIS 框。但是,我在这里找到了这个解决方案,它对我有用。

如果您使用的是 Web 应用程序,则在您的 web.config 中添加以下代码。

<compilation debug="true" targetFramework="4.0" >
    <assemblies>
        <add assembly="System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.DirectoryServices.AccountManagement, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    </assemblies>
</compilation>
于 2013-12-13T19:03:47.070 回答
14

1 - 在“参考”上单击鼠标右键
2 - 单击“添加参考...”
3 - 单击“浏览”按钮
4 - 在文件夹中找到以下文件:

“C:\Program Files\Reference\Assemblies\Microsoft\Framework\.NETFramework\v4.6.1”

-System.DirectoryServices.dll
-System.DirectoryServices.AccountManagement.dll

5 - 选择它们
6 - 按“确定”按钮

于 2017-05-03T11:38:45.763 回答
3

对我有用的简单方法是右键单击 References => Add Reference,然后选择 System.DirectoryServices(和所需的子程序集)。

于 2016-06-09T10:47:37.140 回答
2

我在 Visual Studio 2015 中使用针对 .NET Framework 4.5.2 的 MVC 项目遇到了这个问题。将目标框架更改为 .NET 4.5 解决了该问题。

于 2015-10-06T15:38:41.610 回答
1

您需要在您的 asp.net 页面上添加一个导入指令。确保它完全合格。确保您在项目中也引用了程序集。

 <%@ Assembly Name="System.DirectoryServices, Version=2.0.0.0,
     Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" %>
于 2012-05-22T00:44:58.517 回答
0

看起来您需要将引用(在您的项目中)添加到System.DirectoryServices. 由于您在看起来像 aspx 标记页面中使用它,因此有时编译器会在“构建”期间让它们运行,但在您实际执行页面时会失败。

于 2012-05-21T19:03:18.073 回答
0

我有同样的问题。我在我的 windows 文件夹中搜索了 DirectoryServices.dll。由于出现的所有版本都具有相同的大小,因此我选择了一个并将其复制到我网站的 bin 文件夹中。如果您没有 bin 文件夹,只需创建它。一旦我这样做了,我就可以毫无错误地打开我的网页。

于 2013-11-12T05:51:38.057 回答
0

如果在引用中添加程序集“System.DirectoryServices.AccountManagement”,它将起作用。添加 System.DirectoryServices 将不起作用。

于 2016-10-24T02:52:45.927 回答