首页 文章

激活WCF服务期间的FileLoadException

提问于
浏览
2

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

'/ MyService'应用程序中的服务器错误 . 给定的程序集名称或代码库无效 . (来自HRESULT的异常:0x80131047)描述:在执行当前Web请求期间发生了未处理的异常 . 请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息 . 异常详细信息:System.IO.FileLoadException:给定的程序集名称或代码库无效 . (来自HRESULT的异常:0x80131047)源错误:在执行当前Web请求期间生成了未处理的异常 . 可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息 . 堆栈跟踪:[FileLoadException:给定的程序集名称或代码库无效 . (来自HRESULT的异常:0x80131047)] System.RuntimeTypeHandle.GetTypeByName(String name,Boolean throwOnError,Boolean ignoreCase,Boolean reflectionOnly,StackCrawlMarkHandle stackMark,IntPtr pPrivHostBinder,Boolean loadTypeFromPartialName,ObjectHandleOnStack type)0 System.RuntimeTypeHandle.GetTypeByName(String name,Boolean throwOnError) ,Boolean ignoreCase,Boolean reflectionOnly,StackCrawlMark&stackMark,IntPtr pPrivHostBinder,Boolean loadTypeFromPartialName)153 System.TypeModel.HostingManager.CreateService(String normalizedVirtualPath,EventTraceActivity eventTraceActivity)936 System.ServiceModel.HostingManager.ActivateService( ServiceActivationInfo serviceActivationInfo,EventTraceActivity eventTraceActivity)76 System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath,EventTraceActivity eventTraceActivity)901 [ServiceActivationException:服务'/MyService/MySvcImpl.svc'不能激活由于编译期间的异常而导致的 . 异常消息是:给定的程序集名称或代码库无效 . (来自HRESULT的异常:0x80131047) . ] System.Runtime.AsyncResult.End(IAsyncResult result)650220 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result)210733 System.Web.AsyncEventExecutionStep.OnAsyncEventCompletion(IAsyncResult ar)166

我打开了程序集绑定日志查看器(FUSLOGVW.EXE),但它没有显示任何绑定失败 . 任何人都知道是什么原因造成的,或者如何调试这个?

1 回答

  • 2

    发现了这个问题!在这里发布,因为它可能有一天会帮助某人 .

    我的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>
    

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

相关问题