IIS本地,2个网站,2个应用程序池和“共享”DLL问题

时间:2016-01-14 13:06:40

标签: c# asp.net iis dll nuget

我们使用visual studio 2013开发了2个不同的应用程序: C#.net mvc5中前端的第一个 第二个是C#.net WebApi 2中的Web服务

两个应用程序都使用newtonsoft.json nuget但版本不同(前端为6.0.8,Web api为8.0.2)。

我们使用本地IIS进行测试和调试。 在IIS中,我们创建了2个网站和2个独立的应用程序池。

如果我在前端后编译Web服务,一切都很好。 如果我在Web服务之后编译前端,那么Web服务会崩溃,并且会有6.0.8版本的newtonsoft.json! 为什么?

应用程序池共享了一些dll?

我在项目中找到了一些带有“特定版本”选项的文章。如果“特定版本”为true,则两个版本都可以并行运行。但我不想这样做。

我还可以更新nuget以在两个项目中使用相同的版本,但这是一种解决方法,问题可能仍然存在于另一个dll。

我需要了解为什么2个应用程序池共享dll(带有différents版本)... 所以你有一个想法:-)?

由于 Whiletrue

1 个答案:

答案 0 :(得分:0)

根据您的评论 - 原因很简单。你的webapi和mvc项目都依赖于classlib,这取决于newtonsoft特定的版本。因此,当您构建任何webapi或mvc项目时,classlib的依赖项也会添加到webapi或mvc项目中。您可以以某种方式破坏依赖关系或明确指定Web配置+项目文件中的版本,并在Bin文件夹中包含这两个版本。