【问题标题】:Could not load file or assembly in VS2017 with IIS express无法使用 IIS express 在 VS2017 中加载文件或程序集
【发布时间】:2017-07-18 23:48:04
【问题描述】:

我们公司有一个面向 5/6 开发人员的 ASP.NET 项目。所有 Visual Studio 2017 和 IIS Express 上的调试,没有疯狂的设置或任何让它运行的东西。

一位同事无法让它工作,他总是得到以下异常:

几个月前我们遇到了这个问题,然后出于沮丧重新安装了 PC,问题就消失了。几个星期没发育,今天问题又出现了。

我搜索了很久很久,但这是一个非常普遍的错误,我真的无法弄清楚。

当我运行融合日志查看器时,我看到以下结果:

https://pastebin.com/aCVZn3EB

The operation failed.
Bind result: hr = 0x80131018. No description available.

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Running under executable  C:\Program Files\IIS Express\iisexpress.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: DisplayName = System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
 (Fully-specified)
LOG: Appbase = file:///C:/Users/User/Projects/project/project.UserSite/
LOG: Initial PrivatePath = C:\Users\User\Projects\project\project.UserSite\bin
LOG: Dynamic Base = C:\Users\User\AppData\Local\Temp\Temporary ASP.NET Files\vs\e0254dae
LOG: Cache Base = C:\Users\User\AppData\Local\Temp\Temporary ASP.NET Files\vs\e0254dae
LOG: AppName = 38c6ff11
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Users\User\Projects\project\project.UserSite\web.config
LOG: Using host configuration file: C:\Users\User\Documents\IISExpress\config\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Binding succeeds. Returns assembly from C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel.Activities\v4.0_4.0.0.0__31bf3856ad364e35\System.ServiceModel.Activities.dll.
LOG: Assembly is loaded in default load context.
ERR: Unrecoverable error occurred during pre-download check (hr = 0x80131018).

*** Assembly Binder Log Entry  (7/18/2017 @ 8:55:15 AM) ***

【问题讨论】:

  • 只是为了好玩,你能不能进入解决方案>参考> System.ServiceModel.Activities>属性并验证属性“特定版本”设置为false。
  • @TravisActon 是的,它设置为 false。
  • 堆栈跟踪有什么进一步的吗?也许事件日志中有一些东西?
  • 启用融合日志来定位这个有问题的程序集在哪里(它的完整路径),然后使用ILSpy之类的工具来分析程序集并与另一台机器进行比较。

标签: visual-studio iis-express


【解决方案1】:

您是否尝试使用要求不同 CLR 版本的 EXE 加载 .NET 4 程序集?这需要一个强制使用 CLR 4 的 app.exe.config 文件。

另外请检查他是否安装了相同版本的 .NET。

【讨论】:

  • @YesMan85:问题和解决方案到底是什么?
  • @one_mile_run 看看我自己的答案。
【解决方案2】:

1- 关闭 Visual Studio

2- 删除“C:\WINDOWS\Microsoft.NET\Framework......\Temporary ASP.NET”中的所有文件

3- 打开 VS

4- 重建然后运行

【讨论】:

    【解决方案3】:

    我有同样的问题,它是随机的。只需通过 Nuget 为该项目安装缺少的软件包。打开包管理器控制台并输入:

    PM> 安装包 System.ServiceModel.Activities

    继续安装包,直到不再出现错误:然后停止。

    【讨论】:

    • 它在我们的其他机器上运行良好,所以这是最后的手段,它会增加构建时间和工件大小。
    【解决方案4】:

    在 Fusion Log 的帮助下,我发现了 1 个大小为 0kb 的文件:C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel.Activities\v4.0_4.0.0.0__31bf3856ad364e35\System。 ServiceModel.Activity.dll

    我从 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\System.ServiceModel.Activities.dll 恢复了文件,它又可以工作了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-11
      • 1970-01-01
      • 1970-01-01
      • 2018-09-08
      • 2017-12-23
      • 1970-01-01
      • 2013-10-28
      • 2017-08-02
      相关资源
      最近更新 更多