【发布时间】:2018-04-03 04:06:47
【问题描述】:
我们有一个运行在 kestrel 上的 asp.net 核心应用程序,托管在 windows server 2008 上的 IIS 中。
此应用程序使用多个基本组件,我们习惯于在 GAC 中安装这些组件并使用程序集重定向将同一服务器上的所有应用程序指向这些组件的最新版本。
当我们部署包含所有必要程序集的应用程序时,一切都运行良好。
但是,当我们在 dotnet 核心程序集上应用 redirect 时(我们在 [app].exe.config,而不是 web.config)到安装在 GAC 中的版本,我们得到一个类型异常......
应用程序启动异常:System.TypeLoadException:无法 加载类型 'my.company.namespace.coolest.component.helpers'
奇怪的是,当在 [app].exe.config 中指定时,普通旧 dotnet4 程序集的重定向工作,只有 dotnet 核心程序集的重定向失败。
所以,我现在想知道。 dotnet 核心程序集如何解决?搜索哪些位置?
(最终,是否有可能重定向到 GAC 中的 dotnet 核心程序集)
[2017 年 10 月 23 日编辑: Doh ......原来我们团队最新的 dotnet 核心程序集很糟糕...... 所以回答我自己的问题.. 是的,针对完整 .net 框架的 dotnet 核心程序集的程序集重定向(在 [app].exe.config 中指定时)确实有效,并且还从 GAC 中搜索]
【问题讨论】:
-
这是在 .net 框架或 .net 核心上运行的 asp.net 核心应用程序吗? (您可以通过 csproj 文件中的
TargetFramework来判断)。 .NET Core 不使用 GAC -
@MartinUllrich 在 .net 框架上运行 (
net461 )
标签: iis asp.net-core .net-core kestrel-http-server assembly-binding-redirect