抛出异常:尝试调用 WCF 服务时 mscorlib.dll 中的“System.IO.FileNotFoundException”

问题描述

我正在尝试调用 WCF 服务,但是当我在 VS2019 调试模式下调用该服务时,它只是关闭了调试过程,我在调试日志中看到了这一点:

'NB_ConsoleApp.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'. 
'NB_ConsoleApp.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Users\slam\source\repos\NB_API\NB_ConsoleApp\bin\Debug\NB_ConsoleApp.exe'. Symbols loaded.
'NB_ConsoleApp.exe' (CLR v4.0.30319: NB_ConsoleApp.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel\v4.0_4.0.0.0__b77a5c561934e089\System.ServiceModel.dll'. 
'NB_ConsoleApp.exe' (CLR v4.0.30319: NB_ConsoleApp.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll'. 
'NB_ConsoleApp.exe' (CLR v4.0.30319: NB_ConsoleApp.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll'. 
'NB_ConsoleApp.exe' (CLR v4.0.30319: NB_ConsoleApp.exe): Loaded 'C:\Users\slam\source\repos\NB_API\NB_ConsoleApp\bin\Debug\NB_API.dll'. Symbols loaded.
'NB_ConsoleApp.exe' (CLR v4.0.30319: NB_ConsoleApp.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Serialization\v4.0_4.0.0.0__b77a5c561934e089\System.Runtime.Serialization.dll'. 
'NB_ConsoleApp.exe' (CLR v4.0.30319: NB_ConsoleApp.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\SMDiagnostics\v4.0_4.0.0.0__b77a5c561934e089\SMDiagnostics.dll'. 
'NB_ConsoleApp.exe' (CLR v4.0.30319: NB_ConsoleApp.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll'. 
'NB_ConsoleApp.exe' (CLR v4.0.30319: NB_ConsoleApp.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel.Internals\v4.0_4.0.0.0__31bf3856ad364e35\System.ServiceModel.Internals.dll'. 
'NB_ConsoleApp.exe' (CLR v4.0.30319: NB_ConsoleApp.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll'. 
'NB_ConsoleApp.exe' (CLR v4.0.30319: NB_ConsoleApp.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.IdentityModel\v4.0_4.0.0.0__b77a5c561934e089\System.IdentityModel.dll'. 
'NB_ConsoleApp.exe' (CLR v4.0.30319: NB_ConsoleApp.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_32\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll'. 
'NB_ConsoleApp.exe' (CLR v4.0.30319: NB_ConsoleApp.exe): Loaded 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\PrivateAssemblies\Runtime\Microsoft.VisualStudio.Debugger.Runtime.Desktop.dll'. 
Exception thrown: 'System.IO.FileNotFoundException' in mscorlib.dll
Exception thrown: 'System.IO.FileNotFoundException' in mscorlib.dll
'NB_ConsoleApp.exe' (CLR v4.0.30319: NB_ConsoleApp.exe): Loaded 'Microsoft.GeneratedCode'. 
The program '[25576] NB_ConsoleApp.exe' has exited with code 0 (0x0).

有谁知道为什么会发生这段代码?此解决方案由两个项目组成:1 个控制台应用程序和一个均内置于 .NET Framework 中的类库。控制台应用程序从类库创建一个类对象,然后调用这些类中的函数。但是,当我调用任何类中的任何函数时,我的调试器会立即关闭,并且上述信息会记录到调试输出中。但是,我知道这些服务可以工作,因为在仅由控制台应用程序组成的单独解决方案中,我可以很好地调用这些服务,并且它们都返回正确的值,我还可以使用 SoapUI 直接向它们发送调用。我相信这与 Visual Studio 有更多关系,实际上与我的代码无关。有谁知道可能是什么问题?

解决方法

我解决了这个问题。在我的一些异步函数中,我没有在函数调用期间使用关键字 await,而是将 .GetAwaiter().GetResult() 附加到函数中。我不知道为什么这解决了这个问题,但它确实......