1

当我尝试在 appharbor 中运行我的 WCF 服务时出现以下错误。我在本地机器上使用 .NET Framework 4 并且它工作正常。我在 appharbor 中禁用了预编译,以便在部署期间不会产生任何错误。因此,构建成功部署,没有任何错误。

“/”应用程序中的服务器错误。

无法加载文件或程序集“TnPServiceAH”或其依赖项之一。此程序集由比当前加载的运行时更新的运行时构建,无法加载。

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.BadImageFormatException:无法加载文件或程序集“TnPServiceAH”或其依赖项之一。此程序集由比当前加载的运行时更新的运行时构建,无法加载。

源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

程序集加载跟踪:以下信息有助于确定无法加载程序集“TnPServiceAH”的原因。

警告:程序集绑定日志记录已关闭。要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) 设置为 1。注意:与程序集绑定失败日志记录相关的一些性能损失。要关闭此功能,请删除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。

堆栈跟踪:

[BadImageFormatException:无法加载文件或程序集“TnPServiceAH”或其依赖项之一。此程序集由比当前加载的运行时更新的运行时构建,无法加载。] 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 for Introspection) +48 System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean for Introspection ) +278 System.Reflection.Assembly。

[ConfigurationErrorsException:无法加载文件或程序集“TnPServiceAH”或其依赖项之一。此程序集由比当前加载的运行时更新的运行时构建,无法加载。] 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。

[ServiceActivationException:服务'/TnPServiceAH.svc'由于编译过程中的异常而无法激活。异常消息是:无法加载文件或程序集“TnPServiceAH”或其依赖项之一。此程序集由比当前加载的运行时更新的运行时构建,无法加载..] 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 系统.Web。

版本信息:Microsoft .NET Framework 版本:2.0.50727.5472;ASP.NET 版本:2.0.50727.5471

4

2 回答 2

2

我通过 App Harbor Support 得到了答案。App Harbor 通过“targetFramework”属性的存在和值来检测 ASP.NET 4.0,因此配置文件 (web.config) 应包含以下内容:

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0"/>
  </system.web>
</configuration>
于 2013-08-05T22:32:04.970 回答
1

看起来您在要部署到的机器上的 IIS 下的网站配置中设置了错误的 ASP.Net 版本。打开 IIS 管理器并确保为应用配置的 ASP.Net 版本为 4.0。在较旧的 Windows 版本下,您可以为每个应用程序设置这个,在较新的(我认为是 2008 年及更高版本)下,它是按应用程序池完成的。

于 2013-08-05T22:08:38.887 回答