SSRS和重复的mscorlib引用

时间:2018-01-23 15:00:20

标签: .net reporting-services mscorlib

几天前,在应用到服务器的补丁(Windows Server 2012 SR2,MS SQL 2012 SE [11.0.5388.0])之后,我们的SSRS报告管理器停止工作(Http 500)。在日志文件中,我发现了对重复的mscorlib引用的引用。有人知道如何解决这个问题吗?

记录下面的详细信息:

appdomainmanager!DefaultDomain!532c!01/19/2018-09:52:54:: e ERROR: AppDomain ReportManager_MSSQLSERVER_0 failed to start. Error: (0): error CS1703: An assembly with the same identity 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' has already been imported. Try removing one of the duplicate references.
library!DefaultDomain!532c!01/19/2018-09:52:54:: e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.ReportServerHttpRuntimeInternalException: Failed to create HTTP Runtime, Microsoft.ReportingServices.Diagnostics.Utilities.ReportServerHttpRuntimeInternalException: An internal or system error occurred in the HTTP Runtime object for application domain ReportManager_MSSQLSERVER_0.  ---> System.Web.HttpCompileException: (0): error CS1703: An assembly with the same identity 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' has already been imported. Try removing one of the duplicate references.
   at System.Web.Compilation.AssemblyBuilder.Compile()
   at System.Web.Compilation.BuildProvidersCompiler.PerformBuild()
   at System.Web.Compilation.ApplicationBuildProvider.GetGlobalAsaxBuildResult(Boolean isPrecompiledApp)
   at System.Web.Compilation.BuildManager.CompileGlobalAsax()
   at System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()
   at System.Web.Compilation.BuildManager.CallAppInitializeMethod()
   at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters)
   at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters)
   at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)
   at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)
   at System.Web.Hosting.ApplicationManager.GetAppDomainWithHostingEnvironment(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)
   at System.Web.Hosting.ApplicationManager.CreateObjectInternal(String appId, Type type, IApplicationHost appHost, Boolean failIfExists, HostingEnvironmentParameters hostingParameters)
   at System.Web.Hosting.ApplicationManager.CreateObject(String appId, Type type, String virtualPath, String physicalPath, Boolean failIfExists, Boolean throwOnError)
   at ReportingServicesHttpRuntime.RsHttpRuntime.Create(RsAppDomainType type, String vdir, String pdir, Int32& domainId)
   --- End of inner exception stack trace ---;
appdomainmanager!ReportManager_0-8!532c!01/19/2018-09:52:54:: i INFO: Appdomain:10 ReportManager_MSSQLSERVER_0-8-131608291715600412 unloading
library!DefaultDomain!532c!01/19/2018-09:52:54:: e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.ReportServerAppDomainManagerException: Failed to create Report Server HTTP Runtime, Microsoft.ReportingServices.Diagnostics.Utilities.ReportServerAppDomainManagerException: An error occurred when attempting to start the application domain ReportManager within the Report Server service. ---> Microsoft.ReportingServices.Diagnostics.Utilities.ReportServerHttpRuntimeInternalException: An internal or system error occurred in the HTTP Runtime object for application domain ReportManager_MSSQLSERVER_0.  ---> System.Web.HttpCompileException: (0): error CS1703: An assembly with the same identity 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' has already been imported. Try removing one of the duplicate references.
   --- End of inner exception stack trace ---;
rshost!rshost!532c!01/19/2018-09:52:54:: e ERROR: Failed to create HttpRuntime 80131500.
rshost!rshost!532c!01/19/2018-09:52:54:: e ERROR: Failed to get appdomain 80131500, pipeline=0x00000006483F3C20.
rshost!rshost!532c!01/19/2018-09:52:54:: e ERROR: Error state. Internal abort for pipeline=0x00000006483F3C20 ...
appdomainmanager!DefaultDomain!5090!01/19/2018-09:53:09:: i INFO: Appdomain:10 ReportManager_MSSQLSERVER_0-8-131608291715600412 unregistered.

1 个答案:

答案 0 :(得分:0)

随着微软的贡献,SSRS问题已得到解决。

问题是下面提到的表示SSRS正在使用的.NET Framework的注册表项。

理想情况下,'OnlyUseLatestCLR'键不应该是注册表的一部分,但可能是由于安装了某些.NET应用程序,这个键已经应用了。

此密钥强制.NET运行应用程序使用.NET 4.0框架,而SSRS使用.NET 3.5框架,因此它曾经失败,因为它无法使用.NET 3.5框架。

Windows registry