azure blob storage "계정 정보의 올바른 조합을 찾을 수 없습니다."
Azure 웹사이트 프리뷰를 사용하여 진행하고 있는 MVC4 프로젝트가 있습니다.
문제는 웹 사이트를 azure로 배포할 때 blob 스토리지 컨테이너에 blob을 업로드할 수 없지만 로컬 디버깅을 할 때는 업로드가 정상적으로 작동한다는 것입니다.
이것은 전개 시에 컨테이너에 업로드를 시도했을 때의 예외 및 스택트레이스입니다
계정 정보의 올바른 조합을 찾을 수 없습니다.마이크로소프트에서.WindowsAzure.보관소.Cloud Storage Account(클라우드 스토리지 계정).b_0(String error)을 클릭합니다.WindowsAzure.보관소.Cloud Storage Account(클라우드 스토리지 계정).Microsoft의 TryParse(String s, CloudStorage Account & accountInformation, Action'1 오류)WindowsAzure.보관소.Cloud Storage Account(클라우드 스토리지 계정).MyProj에서의 해석(String connectionString).컨트롤러이미지 컨트롤러업로드(ImageViewModel 모델)
구체적으로는 스택트레이스에 따라 입니다.실패한 구문 분석 메서드입니다.
BLOB 스토리지에 접속하기 위해서 사용하고 있는 코드는, 다음의 조작 설명서에 기재되어 있습니다.
string connectionString = ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString;
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
다시 한 번 말하지만 개발 상자에서 로컬로 실행하면 문제 없이 업로드할 수 있습니다.다만, 전개시에 이 에러가 발생하고, 같은 조작을 시도합니다.
웹 배포 게시 프로세스 중에 storageConnectionString이 고장난 것 같습니다만, 이 문제를 해결하는 방법을 잘 모르겠습니다.
꼭 해 주세요.
1) 진단에 적절한 프로토콜을 사용하고 있습니다('진단'에서 role -> configuration 탭 -> configuration -> configuration을 더블 클릭하여 생략 부호 -> OK를 클릭해 주세요.https 를 사용할 필요가 있는 에러가 표시되는 경우는, 접속 문자열을 https 로 변경합니다).
그리고.
안 함...2) 공백 공간 사용 안 함...UseDevelopmentStorage=true;DevelopmentStorageProxyUri=https://127.0.0.1
UseDevelopmentStorage=true; DevelopmentStorageProxyUri=https://127.0.0.1
(반각 후 메모 공간)
설정 탭의 모든 연결 문자열에 https 및 공백이 있는지 확인합니다.
---편집---
"https"를 집어넣는 건 사실 모든 걸 망친 거야.워커 역할은 예외("예기치 않은 패킷 포맷으로 인해 핸드삭에 실패했습니다")를 발생시킨 후 알 수 없는 것과 파괴된 것 사이를 순환합니다.「https」의 「s」를 삭제하고, 공백이나 Voila가 없는 것을 확인.
CloadStorageAccount 인스턴스를 가져오는 또 다른 방법은 다음과 같습니다.
StorageCredentials credentials = new StorageCredentials(accountName, accountKey);
CloudStorageAccount storageAccount = new CloudStorageAccount(credentials, true);
이것은 해석에 문제가 있는 모든 사용자에게 도움이 될 것입니다.
스토리지 연결 문자열을 ConnectionStrings 섹션이 아닌 AppSettings에 저장합니다.여기에 실제 연결 문자열을 붙여넣으면 도움이 됩니다(계정 키에 *를 입력해 주세요).
Blob SAS URL 앞에 접두사 BlobEndpoint=가 누락되어 다음 오류가 발생했습니다.
잘못된 appsettings.json
{
"TestBlobWriter": {
"ConnectionString": "https://test.blob.core.windows.net/test-container?sp=*&st=*&se=*&spr=*&sv=*&sr=*&sig=*",
"ContainerName": "test-container"
}
}
appsettings.json을 수정합니다.
{
"TestBlobWriter": {
"ConnectionString": "BlobEndpoint=https://test.blob.core.windows.net/test-container?sp=*&st=*&se=*&spr=*&sv=*&sr=*&sig=*",
"ContainerName": "test-container"
}
}
그것이 Sandino Di Mattia의 표현처럼 문제의 원인이 될 수 없다고 생각합니다.SDK를 2.0으로 업그레이드할 때도 같은 것을 사용했는데 API의 연결 문자열 파서가 연결 문자열에 더 이상의 공백 공간을 허용하지 않으며 어디에도 언급되지 않았습니다.만약 이런 변화가 의도적인 것이었다면, 나는 그것을 불쾌한 움직임이라고 부를 것이다.
연결 문자열의 케이스도 중요합니다.이전에 Web.config에서 대규모 Marge로 인해 누군가가 "AccountName"에서 "AccountName"으로 변경되었을 때 이 오류가 발생했습니다.올바른 케이스를 사용하여 오류를 수정.
만약 Azure 서비스에서 복사한 연결 문자열이 붙여넣은 연결 문자열과 같다면, 읽기 쉽도록 캐리지 리턴/스페이스를 제공했는지도 확인하시기 바랍니다.저는 @scottn decker에 +1을 주려 했지만 15개의 평판이 없기 때문에 줄 수 없었습니다.
proxyUri를 사용할 때는 "https://" 또는 "https://"를 포함해야 합니다.예를 들어 다음과 같습니다.
UseDevelopmentStorage=true;DevelopmentStorageProxyUri=https://127.0.0.1
실수로 문자열 끝에 줄바꿈 문자(\r\n)를 추가했기 때문에 이 메시지가 표시됩니다.
저도 같은 문제를 받았는데 네임스페이스에서 찾았어요.CloudStorageAccount 클래스는 두 네임스페이스에 모두 있습니다.
using Microsoft.WindowsAzure;
using Microsoft.WindowsAzure.Storage;
저는 방금 래 so so그그 so so so so so so so so so so 。WindowsAzure
및 된 """ " ""WindowsAzure.Storage
내 코드로.
이전 코드:
using Microsoft.WindowsAzure;
고정 코드:
using Microsoft.WindowsAzure.Storage;
나도 같은 문제에 직면해 있었다. '어울리다'를 써야 요.Microsoft.WindowsAzure.Storage
이름 공간을 지정하고 연결 문자열에 여백이 없는지 확인합니다.
nuget 패키지를 잘못 사용했기 때문에 이 오류가 발생하였습니다(도트넷 4.6.1을 사용하고 있습니다).
잘못된 패키지는 WindowsAzureStorage였습니다.도우미
올바른 패키지는 WindowsAzure 입니다.보관소
반드시 네임스페이스를 사용합니다.Microsoft 를 사용합니다.WindowsAzure.스토리지
@Microsoft를 사용하여 스토리지 연결 문자열을 앱 설정 리터럴에서 keyvault 참조로 마이그레이션했을 때 이 오류가 발생했습니다.KeyVault(SecretUri=secret...) 새로운 기능 앱을 만들었는데 시스템 인식 ID를 켜는 것을 잊어버리고 앱에 KeyVault에 대한 액세스 권한을 부여했습니다.따라서 이 증상은 정의되지 않은 애플리케이션 설정 값(스토리지 연결 시도 실패)입니다.
저는 제 문제의 해결책을 공유하겠습니다.브래킷은 그대로 두고 안에 정보를 입력해야 한다고 생각했습니다.브래킷을 분리한 후 문제가 해결되었습니다.
송신원:
string eventHubName = "{Event Hub name}";
수신인:
string eventHubName = "Event Hub name";
eventHubConnectionString, storageAccountName 및 storageAccountKey도 마찬가지입니다.
이 문제를 해결하려면 기본 문자열을 사용하지 말고 다음과 같은 최소 버전을 사용하십시오.
<add name="StorageConnection"
connectionString="DefaultEndpointsProtocol=https;AccountName=name;AccountKey=yourkey;EndpointSuffix=core.windows.net" />
공백이나 줄 바꿈 없이!!
언급URL : https://stackoverflow.com/questions/13913589/azure-blob-storage-no-valid-combination-of-account-information-found
'programing' 카테고리의 다른 글
WPF ListView 비활성 선택 항목 색상 (0) | 2023.04.22 |
---|---|
일련의 문서 템플릿에서 Word 문서 생성(Excel VBA) (0) | 2023.04.22 |
NTFS 접속점과 심볼릭 링크의 차이점은 무엇입니까? (0) | 2023.04.22 |
Xcode 아래 x86_64 아키텍처에 대한 중복 기호 (0) | 2023.04.22 |
VBA: 사용자가 셀을 삭제하면 Range 객체는 어떻게 됩니까? (0) | 2023.04.22 |