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

Posted

技术标签:

【中文标题】抛出异常:尝试调用 WCF 服务时 mscorlib.dll 中的“System.IO.FileNotFoundException”【英文标题】:Exception thrown: 'System.IO.FileNotFoundException' in mscorlib.dll when trying to call WCF Service 【发布时间】:2021-09-17 05:52:37 【问题描述】:

我正在尝试调用 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 而不是我的代码有关。有谁知道可能是什么问题?

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于抛出异常:尝试调用 WCF 服务时 mscorlib.dll 中的“System.IO.FileNotFoundException”的主要内容,如果未能解决你的问题,请参考以下文章

WCF:在嵌套服务调用中保留内部异常

调用 WCF 服务时如何在 WPF 中捕获异常

尝试抓住问题

在WCF中,自定义Authentication,Validate方法,抛出错误异常时如何在不停止服务的情况下处理异常?

学会WCF之试错法——客户端调用基础

GetRequestStream 随机抛出 Timeout 异常