【问题标题】:File not found exception for my MyWebservice.XmlSerializers when using PrincipalSearcher.FindAll()使用 PrincipalSearcher.FindAll() 时 MyWebservice.XmlSerializers 的文件未找到异常
【发布时间】:2013-09-19 09:00:41
【问题描述】:

我在我的 ASP .NET MVC 4 解决方案中通过服务引用(称为“MyServiceReferences”)添加了一个 Web 服务。此外,我在同一解决方案的另一个项目中有一个 Active Directory 服务。我正在尝试使用活动目录用户信息在我的网页中显示用户名(名字和姓氏)。问题是当我打电话时

PrincipalSearcher.FindAll(),它有时会起作用。我得到的例外是

无法加载文件或程序集“MyServiceReferences.XmlSerializers” 或其依赖项之一。系统找不到指定的文件。

在我的项目构建设置中,我尝试将生成序列化程序集设置为“开”。但这并没有解决我的问题。

【问题讨论】:

  • “生成序列化库”功能已经中断了一段时间。所有选项“Off、Auto 或 ON”都不会生成 XmlSerializers 库。您可以放心地忽略“无法加载...”消息。 “xxx.XmlSerializers.dll”的加载是 .Net 框架的优化,不必“生成和 JIT”您在程序中使用的 XmlSerializers(按类型)。如果您确实希望在构建时生成库,请为您的项目使用构建后步骤,该步骤针对您的输出库运行“SGEN.EXE”。希望这会有所帮助。
  • 嗨马文,感谢您的评论。我在我的 C 盘中搜索了 SGEN.EXE,但找不到它。然后我下载了它并把它放在“C:\Windows\Microsoft.NET\Framework\v4.0.30319”目录下。我已经从命令提示符“SGEN MyServiceReferences.dll”运行命令,但它产生了一个错误,提示“未处理的异常:System.NotSupportException:无法序列化接口 MyServiceReferences.(namespace).(interfaceName)”。从您的评论来看,这似乎很有希望,但我不知道如何从视觉工作室做到这一点。你能提供我这样做的步骤吗??
  • 嗨 Mushfiqur,sgen.exe 实际上是 Windows SDK 的一部分。 SDK 的路径将根据您使用的 VS 版本而有所不同。使用 Visual Studio 命令行(设置了路径的 cmd.exe)应该允许您直接执行 sgen.exe 工具。拥有符合您正在使用的 .Net 版本的正确版本非常重要。重要的是要意识到“无法加载 .XmlSerializers.dll”库并不是一种破坏情况。 CLR 只会在内存中生成并 JIT 编译 XmlSerializers。
  • 我怀疑“无法加载”是“.FindAll”方法失败的真正原因。
  • 嗨,UserPrincipal.FindByIdentity(ctx, UserPrincipal.Current.Name);与 .findAll() 一样,.FindByIdentity 也会失败,并且异常是相同的“不能……”。这意味着你是对的,换句话说,.findAll() 和 .FindByIdentity() 正在尝试使用序列化或反序列化对象值,但在此过程中他们找不到 MyServiceReferences.XmlSerializers.dll 文件。 (不确定只是猜测)

标签: c# web-services active-directory xmlserializer filenotfoundexception


【解决方案1】:

从 Visual Studio 命令行执行命令解决了问题

Sgen.exe (locationOfTheDllFile)\MyServiceReferences.dll

但是很少发生另一个以下错误(尝试非常频繁地加载页面时)

[System.AppDomainUnloadedException] = {"Attempted to access an unloaded appdomain. (Exception from HRESULT: 0x80131014)"}

【讨论】:

    猜你喜欢
    • 2013-08-27
    • 1970-01-01
    • 2019-03-29
    • 2019-06-26
    • 2012-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多