Task.CompletedTask 属性 上的 MethodAccessException
MethodAccessException on Task.CompletedTask property
我正在开发一个小型 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 文档,在以下情况下会抛出此类异常:
- 普通编译代码无法访问的私有、受保护或内部方法可通过使用反射从部分受信任的代码访问。
- 从透明代码访问安全关键方法。
- class 库中方法的访问级别已更改,引用该库的一个或多个程序集尚未重新编译。
Task.get_CompletedTask() 自推出以来就是 public,我也没有使用反射来访问 属性。
我也不认为代码有问题 security/transparency 因为只有一个用户遇到这个问题。
在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;
}
}
关于什么可能导致异常的任何想法?
问题是客户安装了 .NET 4.5.2,而程序针对的是 .NET 4.6。
虽然我仍然不知道为什么 System.MethodAccessException
被抛出,因为 3 种记录的抛出此异常的情况中 none 确实发生了。
我正在开发一个小型 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 文档,在以下情况下会抛出此类异常:
- 普通编译代码无法访问的私有、受保护或内部方法可通过使用反射从部分受信任的代码访问。
- 从透明代码访问安全关键方法。
- class 库中方法的访问级别已更改,引用该库的一个或多个程序集尚未重新编译。
Task.get_CompletedTask() 自推出以来就是 public,我也没有使用反射来访问 属性。
我也不认为代码有问题 security/transparency 因为只有一个用户遇到这个问题。
在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;
}
}
关于什么可能导致异常的任何想法?
问题是客户安装了 .NET 4.5.2,而程序针对的是 .NET 4.6。
虽然我仍然不知道为什么 System.MethodAccessException
被抛出,因为 3 种记录的抛出此异常的情况中 none 确实发生了。