我正在开发一个小型的wpf应用程序,其中一个用户遇到以下异常:
System.MethodAccessException:
Attempt by method "xxx.HttpConfirmation.Invoke()" to access method "System.Threading.Tasks.Task.get_CompletedTask()" failed.
at xxx.HttpConfirmation.Invoke()
at xxx.RequestPipeline.<ProcessQueuedRequests>d__11.MoveNext()
根据MSDN文档,在以下情况下会抛出此类异常:
自引入以来,Task.get_CompletedTask()是公共的,我也没有使用反射来访问该属性。
我也不认为代码安全性/透明度存在问题,因为只有一个用户遇到此问题。
在 Task.CompletedTask 行引发异常:
public class HttpConfirmation
{
public static Task Invoke()
{
using (var client = new WebClient())
{
try
{
// Send the request and don't wait for the response.
client.UploadStringTaskAsync("http://sampleUrl.com", string.Empty);
}
catch
{
// ignore
}
}
return Task.CompletedTask;
}
}
关于可能导致异常的任何想法?
答案 0 :(得分:1)
问题是客户安装了.NET 4.5.2,程序针对.NET 4.6。
虽然我仍然不清楚究竟为什么System.MethodAccessException
被抛出,因为没有发生三次记录的抛出此异常的情况。