C# IIS本地、2个网站、2个应用程序池和;“共享”;dll问题

C# IIS本地、2个网站、2个应用程序池和;“共享”;dll问题,c#,asp.net,iis,dll,nuget,C#,Asp.net,Iis,Dll,Nuget,我们使用visual studio 2013开发了两种不同的应用程序: C#.net mvc5中前端的第一个 C#.net WebApi 2中web服务的第二个 两个应用程序都使用newtonsoft.json nuget,但版本不同(front为6.0.8,web api为8.0.2) 我们使用本地IIS进行测试和调试。 在IIS中,我们创建了两个网站和两个独立的应用程序池 如果我在前端之后编译web服务,一切都很好。 如果我在web服务之后编译前端,web服务将在6.0.8版本的newton

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

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

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

如果我在前端之后编译web服务,一切都很好。 如果我在web服务之后编译前端,web服务将在6.0.8版本的newtonsoft.json中崩溃为什么?

应用程序池共享了一些DLL

我在项目中发现了一些带有“特定版本”参考选项的文章。当“特定版本”为true时,两个版本可以并行运行。但我不想那样做

我也可以在两个项目中更新nuget,使其具有相同的版本,但这是一个解决方法,问题可能仍然存在于另一个DLL中

我需要了解为什么2个应用程序池共享DLL(不同版本)。。。 那么你有什么想法:-)

谢谢
尽管你的评论确实如此,但现在原因很简单。您的webapi和mvc项目都依赖于依赖于newtonsoft特定版本的classlib。所以,当您构建任何webapi或mvc项目时,classlib的依赖项也会添加到webapi或mvc项目中。您可以以某种方式打破依赖关系,也可以在web config+项目文件中明确指定版本,并将这两个版本都放在您的Bin文件夹中。

您是否从web api获得MVC的任何引用,反之亦然。最有可能是问题的原因。我有一些参考MVC和WebApi的个人类库,但不是从web api到MVC,或者相反,这个类库是否依赖于newtonsoftyes?你是对的!依赖于版本6.0.8。但是当我在web api之后编译mvc时,web api是不可用的。那么在两个应用程序池中都有共享的dll吗?