繁体   English   中英

防止在IIS / ASP.net中共享DLL

[英]Prevent sharing DLL in IIS/ASP.net

可以说我有两个ASP MVC应用程序。

ProjectXXX ProjectYYY-这是ProjectXXX的分支。

这两个项目具有相同的结构(项目/程序集名称),但是在某些功能上有所不同(将在其他国家/地区部署)。

为了进行测试,我们将两个应用程序都部署在一台服务器上。

  • ProjectXXX-有自己的IIS池
  • ProjectYYY-具有自己的IIS池

问题

当我从ProjectXXX的程序集中删除某些功能并运行ProjectYYY时,它将引发TypeLoadException:无法从程序集“ Project.Namespace”中加载类型“ Project.Namespace.IMyInterface”

似乎ProjectYYY使用ProjectXXX中的DLL(IIS(asp.net?)一次加载dll,因为它“认为”程序集相同?)

如何强制IIS不缓存那些程序集并为两个应用程序加载正确的程序集?

编辑/解决方案:

我发现我的应用程序使用MEF组合。 到目前为止,我已经更改了它搜索程序集的方式,问题似乎消失了:)

如果为每个站点创建一个单独的IIS站点,它应该可以解决问题,因为对于每个站点,都运行一个单独的w3wp进程。 话虽如此,您不能为2个站点共享相同的ip和端口,因此,如果需要,您将不得不在IIS上进行重定向和URL重写。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM