在IIS中部署我的WCF服务后,访问该服务时出现此错误:
' / MyService'中的服务器错误应用
给定的程序集名称或代码库无效。 (例外 HRESULT:0x80131047)描述:发生了未处理的异常 在执行当前Web请求期间。请查看 堆栈跟踪以获取有关错误及其位置的更多信息 起源于代码。
异常详细信息:System.IO.FileLoadException:给定的程序集 名称或代码库无效。 (来自HRESULT的异常:0x80131047)
来源错误:
执行期间生成了未处理的异常 当前的网络请求。有关的来源和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。
堆栈追踪:
[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.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 result)+650220
System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult的 结果)+210733
System.Web.AsyncEventExecutionStep.OnAsyncEventCompletion(IAsyncResult的 ar)+166
我打开了程序集绑定日志查看器(FUSLOGVW.EXE),但它没有显示任何绑定失败。任何人都知道可能导致这种情况的原因,或者如何调试它?
答案 0 :(得分: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也没有任何帮助。
答案 1 :(得分:0)
当我尝试在此位置'AppCode / Authentication'引用文件时遇到了同样的问题,但是当我将文件夹的名称更改为'App_Code / Authentication'时, strong>问题已解决。