【问题标题】:FileLoadException during activation of WCF service激活 WCF 服务期间的 FileLoadException
【发布时间】:2013-04-13 12:55:01
【问题描述】:

在 IIS 中部署我的 WCF 服务后,访问该服务时出现此错误:

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

给定的程序集名称或代码库无效。 (例外来自 HRESULT: 0x80131047) 说明:发生未处理的异常 在当前 Web 请求执行期间。请查看 堆栈跟踪以获取有关错误及其位置的更多信息 起源于代码。

异常详细信息:System.IO.FileLoadException:给定程序集 名称或代码库无效。 (HRESULT 异常:0x80131047)

来源错误:

在执行过程中产生了一个未处理的异常 当前的网络请求。有关原产地和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。

堆栈跟踪:

[FileLoadException:给定的程序集名称或代码库无效。 (HRESULT 异常:0x80131047)]
System.RuntimeTypeHandle.GetTypeByName(字符串名称,布尔值 throwOnError, Boolean ignoreCase, Boolean reflectOnly, StackCrawlMarkHandle stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName,ObjectHandleOnStack 类型)+0
System.RuntimeTypeHandle.GetTypeByName(字符串名称,布尔值 throwOnError, Boolean ignoreCase, Boolean reflectOnly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName) +153 System.Type.GetType(String typeName) +89 System.ServiceModel.HostingManager.CreateService(String normalizedVirtualPath, EventTraceActivity eventTraceActivity) +936
System.ServiceModel.HostingManager.ActivateService(ServiceActivationInfo serviceActivationInfo, EventTraceActivity eventTraceActivity) +76
System.ServiceModel.HostingManager.EnsureServiceAvailable(字符串 normalizedVirtualPath, EventTraceActivity eventTraceActivity) +901

[ServiceActivationException:服务'/MyService/MySvcImpl.svc' 编译时出现异常,无法激活。这 异常消息是:给定的程序集名称或代码库无效。 (HRESULT 异常:0x80131047)。]
System.Runtime.AsyncResult.End(IAsyncResult 结果) +650220
System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult 结果)+210733
System.Web.AsyncEventExecutionStep.OnAsyncEventCompletion(IAsyncResult ar) +166

我打开了程序集绑定日志查看器 (FUSLOGVW.EXE),但它没有显示任何绑定失败。任何人都知道可能导致此问题的原因或如何调试此问题?

【问题讨论】:

    标签: wcf iis activation fileloadexception


    【解决方案1】:

    找到问题了!在这里发帖,因为有一天它可能会对某人有所帮助。

    我的 web.config 包含一个带有工厂属性的服务激活元素,如下所示:

    <serviceHostingEnvironment>
      <serviceActivations>
        <add relativeAddress="MyService.SvcImpl.svc" 
             service="MyService.SvcImpl" 
             factory="MyCompany.MyServiceHostFactory, MyCompany.MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=" />
      </serviceActivations>
    </serviceHostingEnvironment>
    

    工厂属性包含来自强命名程序集的类引用。但是,PublicKeyToken 属性应该由构建系统设置为正确的值,具体取决于使用的是测试签名证书还是官方签名证书。 构建步骤以某种方式失败并导致程序集的强名称无效。因此,异常中消息的第一部分非常准确。它只是没有告诉我无法加载哪个程序集。 FUSLOGVW.EXE 在这里也没有任何帮助。

    【讨论】:

      【解决方案2】:

      当我尝试引用此位置 'AppCode/Authentication' 中的文件时遇到同样的问题,但是当我将文件夹名称更改为 'App_Code/Authentication' strong> 问题已解决。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-14
        • 1970-01-01
        • 1970-01-01
        • 2020-01-04
        • 2015-01-06
        相关资源
        最近更新 更多