Azure Storage Emulator 403 Forbidden

Обновить

December 2018

Просмотры

1.9k раз

6

Via NuGet, я повышен WindowsAzure.Storageдо 8.1.1.

Затем я скачал AzureStorageEmulator 5.1.0.0клиент.

Моя строка соединения:

UseDevelopmentStorage=true;

Я не сделал никаких изменений коды, так как ранее, когда он был, по-видимому работает нормально. Я знаю, что получаю исключение:

Microsoft.WindowsAzure.Storage.StorageException: The remote server returned an error: (403) Forbidden. ---> System.Net.WebException: The remote server returned an error: (403) Forbidden.
   at System.Net.HttpWebRequest.GetResponse()
   at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext) in c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Core\Executor\Executor.cs:line 677
   --- End of inner exception stack trace ---
   at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext) in c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Core\Executor\Executor.cs:line 604
   at Microsoft.WindowsAzure.Storage.Blob.CloudBlobContainer.CreateIfNotExists(BlobContainerPublicAccessType accessType, BlobRequestOptions requestOptions, OperationContext operationContext) in c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Blob\CloudBlobContainer.cs:line 233
   at C3.Code.Controls.Application.Storage.Blob.Blob.GetContainer(String containerName) in C:\Dropbox\Dropbox (Scirra Ltd)\Tom\C3 Website\C3Alpha2\Code\Controls\Application\Storage\Blob\Blob.cs:line 112
Request Information
RequestID:621bc19f-eb6a-4a98-b19e-f5b01ac22c26
RequestDate:Thu, 27 Apr 2017 16:17:34 GMT
StatusMessage:Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
ErrorCode:AuthenticationFailed
ErrorMessage:Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
RequestId:621bc19f-eb6a-4a98-b19e-f5b01ac22c26
Time:2017-04-27T16:17:34.5166522Z

Когда я звоню

var blobClient = GetClient();
var container = blobClient.GetContainerReference(containerName);
container.CreateIfNotExists(BlobContainerPublicAccessType.Blob);

Я видел, что системное время может повлиять на это, так что я проверил:

Server DateTime.UtcNow = 27/04/2017 16:17:34
Exception RequestDate = Thu, 27 Apr 2017 16:17:34 GMT

Любые идеи, почему я вижу эту ошибку после обновления клиента и пакета NuGet?

Edit: GetClient () Код:

private static CloudBlobClient GetClient()
{
    var account = CloudStorageAccount.Parse(Settings.Deployment.AzureConnectionString);
    return account.CreateCloudBlobClient();
}

Редактирование: BaseUri

Базовый URI является: http://127.0.0.1:10000/devstoreaccount1

Посетите это я получаю:

<Error>
<Code>InvalidQueryParameterValue</Code>
<Message>
Value for one of the query parameters specified in the request URI is invalid. RequestId:9cc906b0-eec6-44b2-bb3d-f77020af4a4c Time:2017-04-27T16:43:16.8538679Z
</Message>
<QueryParameterName>comp</QueryParameterName>
<QueryParameterValue/>
<Reason/>
</Error>

Во время хранения эмулятора инициализации, это показывает , что он установлен его:
(localdb)\MSSQLLocalDBвAzureStorageEmulatorDb51

Посещение: http://127.0.0.1:10000/azurestorageemulatordb51

Показывает:

<Error>
<Code>OutOfRangeInput</Code>
<Message>
One of the request inputs is out of range. RequestId:dab5e6c1-bc4a-4c65-a4d9-6d44634cb36a Time:2017-04-27T16:47:20.3093597Z
</Message>
</Error>

6 ответы

2

Обновление приложений Insights от версии 2.4 до версии 2.4.1 решить эту проблему.

Примечание: когда я решил добавить AI в мой проект (с помощью мастера), была добавлена ​​версия 2.4. Удивительно, но версия добавлена ​​была не последняя версия AI. Я должен был пойти в NuGet и вручную обновить до последней версии.

0

У меня была такая же проблема, не может найти какое-либо решение, чтобы исправить это. Это действительно кажется, должны быть подключено к ApplicationInsights - прямой призыв к локальному эмулятору из приложения чистой консоли отлично работает, вызывая эмулятор с вебом-проекта с ApplicationInsights возвращает 403.

Вы можете использовать другой эмулятор хранения или использовать реальный Azure Blob Storage.

5

Вы можете решить эту проблему для применения Insights версии 2.4.0, изменив файл ApplicationInsights.config и добавления локального сервера в раздел ExcludeComponentCorrelationHttpHeadersOnDomains таким образом:

<ExcludeComponentCorrelationHttpHeadersOnDomains>
    <Add>localhost</Add>
    <Add>127.0.0.1</Add>
    <Add>core.windows.net</Add>
    <Add>core.chinacloudapi.cn</Add>
    <Add>core.cloudapi.de</Add>
    <Add>core.usgovcloudapi.net</Add>
</ExcludeComponentCorrelationHttpHeadersOnDomains>
0

Для тех, кто не видит

services.AddApplicationInsightsTelemetry(configuration);

в их Startup.csфайле конфигурации ApplicationInsight может быть сделано Program.cs, например , так:

var host = new WebHostBuilder()
    .UseKestrel()
    .UseContentRoot(Directory.GetCurrentDirectory())
    .UseIISIntegration()
    .UseStartup<Startup>()
    .UseApplicationInsights() /* HERE */
    .Build();
0

У нас была такая же проблема после установки пакета приложений Insights в наш проект бизнес-правил. У нас есть N-уровневое решение с asp.net ядром, который имеет другую версию идеи применения.

Оказывается, мы установили основной пакет нон asp.net в бизнес-правила, которые затем производятся Запрещенный 403 ошибки при доступе клиента очереди.

Мы удалили непрофильные asp.net понимание приложений, установленных ядро ​​Insights приложений в проект бизнес-правил и все работало нормально.

10

У меня была та же проблема, а также пытались понижая WindowsAzure.Storage без успеха. После долгого дня, пытаясь отключить Everyting я обнаружил, что удаление этой строки из startup.cs исправил проблему:

services.AddApplicationInsightsTelemetry(configuration);

Я не знаю, почему они связаны и почему ApplicationInsights создает проблемы для хранения Azure. Я попытался с помощью как версии 2.1.0-beta2 и 2.0.0 Microsoft.ApplicationInsights.AspNetCore и оба вызывают ошибку 403.