在 .NET 7 应用程序中,我尝试使用 Azure Identity。但是,我经常收到操作被取消,因为它超出了配置的超时时间 0:00:01。网络超时可以在ClientOptions.Retry.NetworkTimeout中调整。
我正在尝试增加超时时间,但它不起作用。如何适当增加超时时间
builder.Services.AddAzureClients(clientBuilder =>
{
clientBuilder.ConfigureDefaults(options =>
{
options.Retry.NetworkTimeout = TimeSpan.FromSeconds(10);
});
// Add a Storage account client
clientBuilder.AddBlobServiceClient(builder.Configuration.GetSection("AzureBlobStorage"));
// Use DefaultAzureCredential by default
clientBuilder.UseCredential(new DefaultAzureCredential(new DefaultAzureCredentialOptions()
{
Retry = { NetworkTimeout = TimeSpan.FromSeconds(10) }
}));
});
最佳答案
该错误是由于该过程花费的时间比平时更长。
通过在代码中设置RetryOptions
对象的NetworkTimeout
属性增加超时时间。
You are setting the
NetworkTimeout
property of theRetryOptions
object in two places.
- 在
clientBuilder
对象的ConfigureDefaults
方法中,以及在传递给UseCredential
的DefaultAzureCredentialOptions
对象中>clientBuilder
对象的方法。
您必须在一处设置 NetworkTimeout
属性。
仅通过在 DefaultAzureCredentialOptions
对象中进行设置即可满足请求。
以下是要安装的 NuGet。
代码
builder.Services.AddAzureClients(clientBuilder =>
{
clientBuilder.ConfigureDefaults(options =>
{
});
clientBuilder.AddBlobServiceClient(builder.Configuration.GetSection("AzureBlobStorage"));
clientBuilder.UseCredential(new DefaultAzureCredential(new DefaultAzureCredentialOptions()
{
Retry = { NetworkTimeout = TimeSpan.FromSeconds(10) }
}));
});
You can also add the requestTimeout="00:20:00 in the configuration file in your slots sites/wwwroot folder.
欲了解更多信息,请参阅MSDoc和 Github Issues .
关于c# - .NET Azure.Identity SDK 网络超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76178235/