在我的应用程序中,我使用了多个azure存储帐户,最近碰巧很少有帐户不可用,但使用这些帐户的代码分散在我的应用程序中。对这些帐户的任何方法调用,例如create table / query / blob,retrieve begin throwing。
我正在检查是否有办法在调用方法之前检查帐户是否存在。但我没有找到任何。我们可以在存储客户端库上调用方法时提供IRequestOptions
,但我不想在所有位置更改我的代码。我只想检查帐户是否存在,如果不存在则不要再调用该帐户的任何方法。因为在超时等情况下调用帐户上的每个方法会导致500
远程服务器返回错误:(500)内部服务器错误。
我不想要。
我查看了Microsoft.WindowsAzure.Storage上的CloudStorageAccount
类,它没有任何方法来检查它是否是有效帐户。可能会发生连接字符串对于帐户可能是错误的,在这种情况下,所有方法也会开始抛出500.
任何关于此的指示都会有所帮助。
答案 0 :(得分:1)
查看帐户是否存在的最简单方法是继续在try catch块中对其执行操作。在您的catch块中,处理您的帐户不存在逻辑。
旁注:听起来您的帐户凭据在整个应用程序中都是硬编码的,这实际上并不是最佳做法。如果它们处于集中配置中,将来的帐户更新会更容易。
答案 1 :(得分:1)
如果您知道资源组,那么只需按照此流程列出资源组的存储帐户https://msdn.microsoft.com/en-us/library/azure/mt163554.aspx
如果您不确定资源组,则首先列出资源组,列出所有资源组:https://msdn.microsoft.com/en-us/library/azure/dn790529.aspx?f=255&MSPPError=-2147217396。然后列出找到的每个资源组中的每个存储帐户。