appharbor WCF Service assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded [closed]

StackOverflow https://stackoverflow.com/questions/18068472

Вопрос

I am getting the following error when I try to run my WCF Service in appharbor. I use .NET Framework 4 in my local machine and it worked. I have disabled pre-compilation in appharbor so that it doesn't produce any error during deployment. So, the build is getting successfully deployed without any errors.

Server Error in '/' Application.

Could not load file or assembly 'TnPServiceAH' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.BadImageFormatException: Could not load file or assembly 'TnPServiceAH' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Assembly Load Trace: The following information can be helpful to determine why the assembly 'TnPServiceAH' could not be loaded.

WRN: Assembly binding logging is turned OFF. To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1. Note: There is some performance penalty associated with assembly bind failure logging. To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

Stack Trace:

[BadImageFormatException: Could not load file or assembly 'TnPServiceAH' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.] System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +0 System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +48 System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +278 System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +145 System.Reflection.Assembly.Load(String assemblyString) +28 System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +46

[ConfigurationErrorsException: Could not load file or assembly 'TnPServiceAH' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.] System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +590 System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +193 System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +45 System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +178 System.Web.Compilation.WebDirectoryBatchCompiler..ctor(VirtualDirectory vdir) +164 System.Web.Compilation.BuildManager.BatchCompileWebDirectoryInternal(VirtualDirectory vdir, Boolean ignoreErrors) +51 System.Web.Compilation.BuildManager.BatchCompileWebDirectory(VirtualDirectory vdir, VirtualPath virtualDir, Boolean ignoreErrors) +187 System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) +648 System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) +305 System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) +99 System.Web.Compilation.BuildManager.GetVPathBuildResult(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) +75 System.Web.Compilation.BuildManager.GetCompiledCustomString(String virtualPath) +28 System.ServiceModel.HostingManager.GetCompiledCustomString(String normalizedVirtualPath) +135 System.ServiceModel.HostingManager.CreateService(String normalizedVirtualPath) +26 System.ServiceModel.HostingManager.ActivateService(String normalizedVirtualPath) +43 System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath) +495

[ServiceActivationException: The service '/TnPServiceAH.svc' cannot be activated due to an exception during compilation. The exception message is: Could not load file or assembly 'TnPServiceAH' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded..] System.ServiceModel.AsyncResult.End(IAsyncResult result) +394 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +196 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronous(HttpApplication context, Boolean flowContext) +216 System.ServiceModel.Activation.HttpModule.ProcessRequest(Object sender, EventArgs e) +271 System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +128 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +168

Version Information: Microsoft .NET Framework Version:2.0.50727.5472; ASP.NET Version:2.0.50727.5471

Это было полезно?

Решение

I got the answer through App Harbor Support. App Harbor detects ASP.NET 4.0 by the presence and value of the "targetFramework" attribute, so the configuration file (web.config) should include the following:

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0"/>
  </system.web>
</configuration>

Другие советы

Looks like you have the wrong ASP.Net version set in the web site config under IIS on the machine you are deploying to. Open IIS manager and make sure the ASP.Net version configured for the app is 4.0. Under older windows versions, you set this per-app, under newer (I think 2008 and up), it's done per app-pool.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top