System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
at System.Reflection.Assembly.GetTypes()
at Microsoft.Tools.SvcHost.ServiceHostHelper.LoadServiceAssembly(String svcAssemblyPath)
如何循环浏览LoaderExceptions属性以查看在没有命中任何服务时发生了什么错误,并在运行任何代码之前给出了这个错误?
由于
答案 0 :(得分:9)
我设法解决了这个问题。我的一个项目设置为x86,其他项目设置为Any CPU。将所有更改为任何CPU都为我解决了问题。
由于
答案 1 :(得分:0)
解决方案对我来说是不同的。对于甚至非常熟悉WCF开发的人们来说,这可能是显而易见的信息。但是,希望它能帮助其他遇到相同问题的新手,这是我所发现的。
原来,我正在调试的应用程序根本不需要WcfSvcHost.exe。 WcfSvcHost.exe用于自托管WCF应用程序。这个应用程式使用的服务是公开在网路应用程式上的端点。
最终让我明白的是:首先,该屏幕将出现:
我注意到,这在Windows任务管理器中显示为WcfSvcHost.exe的单独过程。这解释了为什么当抛出System.Reflection.ReflectionTypeLoadException时将异常设置调整为中断时,调试器也无法中断。 Visual Studio并未中断,因为它没有附加到WcfSvcHost.exe进程。它已附加到运行我的应用程序的IISExpress.exe进程中。但是WcfSvcHost.exe进程引发了异常。
当我单击以上错误消息上的“确定”按钮时,WcfSvcHost.exe进程将退出并且不再出现在任务管理器中。但是该应用仍然运行良好。因此很明显,不需要发生任何事情。与另一位开发人员的快速检查确认该应用程序不需要自托管的WCF服务。
由于某种原因,Visual Studio无论如何都启动WcfSvcHost.exe。最终导致我进入this answer。可以将WCF类库项目配置为在调试开始时启动WcfSvcHost.exe。
答案是右键单击每个WCF类库项目,选择“属性”,然后单击“ WCF选项”选项卡。然后取消选中在同一解决方案中调试另一个项目时启动WCF服务主机。
您必须对解决方案中的所有WCF类库执行此操作。我不确定是哪个,所以我只查看了每个类库的“属性”,并修复了带有“ WCF选项”选项卡的那些。