Azure StorageException 由于其保护级别而无法访问

Azure StorageException is inaccessible due to its protection level

看来我的 VS2013 有问题,因为这段代码:

try
{
    TableResult tblr = await cloudTable.ExecuteAsync(...);
}
catch ( StorageException ex )
{
    Debug.WriteLine( ex.Message );
}

给我这个错误:

Microsoft.WindowsAzure.Storage.StorageException is inaccessible due to its protection level

windows store project 中的其他一切都运行良好。它甚至可以在使用几乎相同天蓝色代码的 console application 中使用(StorageException 在控制台应用程序中运行良好)。

有什么想法是错误的吗?我尝试重新安装 Azure Sdk 2.5,删除 VS2013 中的 ComponentModelCache 文件夹 - 没有任何帮助。

更新:我不是100%确定,但是Azure library code declares StorageException是这样的:

#if WINDOWS_RT || ASPNET_K
    internal class StorageException : COMException
#else
    public class StorageException : Exception
#endif

看起来 Windows 商店应用与 WINDOWS_RT 相同。

Windows 运行时的 Azure 存储客户端库不公开 StorageException 类型,因为 Windows 运行时组件不允许声明 public 异常类型(参见 Throwing exceptions了解更多信息)。

您可以改为传入 OperationContext object and then check its LastResult