# ASP.NET Core MVC 프로젝트에서 Azure KeyVault URL 설정 오류 해결하기

 

ASP.NET Core MVC 프로젝트에서 Azure KeyVault와 연동할 때 잘못된 URL 설정으로 인해 발생하는 오류를 처리하는 방법에 대해 알아보겠습니다.

 

## 문제 상황

 

본 문제는 `Program.cs` 또는 `Startup.cs` 파일에서 Azure KeyVault URL이 잘못 설정되었을 때 발생합니다. 주로 다음과 같은 에러 메시지가 출력됩니다.

 

UriFormatException: Invalid URI: The hostname could not be parsed.

System.Uri.CreateThis(string uri, bool dontEscape, UriKind uriKind)

 

azure-keyvalut-url-error.png

 

## 원인

 

이 오류의 주요 원인은 Azure KeyVault의 URL이 잘못 설정되었기 때문입니다. 이는 Azure KeyVault에 접근하기 위한 URI 형식이 올바르지 않게 되어 발생하는 문제입니다.

 

특히 Azure KeyValut의 정보를 appsettings.json 파일 또는 환경 변수에서 잘못 읽어올 수도 있으니 이 부분이 원인일 수 있습니다. 

 

## 해결 방법

 

### 1. Azure KeyVault URL 확인

 

먼저 Azure portal에서 Azure KeyVault의 URL을 확인해봅니다. KeyVault 섹션으로 이동하여, 필요한 KeyVault 인스턴스를 선택하고 개요 섹션에서 DNS 이름을 확인하세요. 

 

### 2. URL 설정 확인

 

그 다음으로 `Startup.cs` 파일에서 Azure KeyVault URL 설정을 확인합니다. 아래 코드는 ASP.NET Core에서 Azure KeyVault를 사용하기 위해 설정하는 일반적인 방법입니다.

 

public Startup(IWebHostEnvironment env)

{

    var builder = new ConfigurationBuilder()

        .SetBasePath(env.ContentRootPath)

        .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)

        .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)

        .AddEnvironmentVariables();

    

    if (env.IsDevelopment())

    {

        builder.AddUserSecrets<Startup>();

    }

    else

    {

        builder.AddAzureKeyVault(

            $"https://{Configuration["VaultName"]}.vault.azure.net/",

            Configuration["ClientId"],

            Configuration["ClientSecret"]);

    }



    Configuration = builder.Build();

}

 

위 코드에서 Azure KeyVault를 추가하는 부분에서 URL 형식이 `"https://{Configuration["VaultName"]}.vault.azure.net/"`와 같이 설정되어 있는지 확인해봅니다.

 

### 3. 수정 및 재시작

 

잘못된 URL을 발견한 경우, 올바른 URL로 수정한 후 애플리케이션을 재시작합니다.

 

## 결론

 

Azure KeyVault의 URL 설정 오류는 주로 URL 형식의 문제로 인해 발생합니다. 이를 해결하기 위해서는 Azure KeyVault의 정확한 URL을 확인하고, `Startup.cs` 파일의 설정이 올바른지 다시 확인해야 합니다. 올바른 URL로 수정 후에는 애플리케이션을 재시작하여 오류가 해결되었는지 확인해보세요.

 

Comments


Comments are closed