잘못된 작업예외:어셈블리에서 'UserSecretsIdAttribute'를 찾을 수 없습니다.
ASP.NET Core 앱을 zure에 배포하고 사이트를 연 후 다음 오류가 발생합니다.
잘못된 작업예외:어셈블리 '******, 버전=1.0.0.0, Culture=neutral, PublicKey에서 'UserSecretsIdAttribute'를 찾을 수 없습니다.Token=proxy'입니다.
예외 세부 정보에는 다음 코드 줄에서 Startup.cs 에서 오류가 발생한다는 내용도 포함됩니다.
건축업자사용자 암호 추가();
감사해요.
최근에 사용자 비밀 모듈에 대한 업데이트가 있었습니다.버전 1.0.1 이상에서는 사용자 암호 ID에 대한 어셈블리 수준 속성을 지정하거나 이전에 project.json에 있었던 방식으로 대체해야 합니다.
GitHub: https://github.com/aspnet/Announcements/issues/209 에 대한 공지입니다.
다음과 같이 .csproj에서 secret id를 정의할 수 있습니다.
<PropertyGroup>
<UserSecretsId>aspnet-TestApp-ce345b64-19cf-4972-b34f-d16f2e7976ed</UserSecretsId>
</PropertyGroup>
그러면 다음과 같은 어셈블리 수준 특성이 생성됩니다.또는 .tftroj 파일에 추가하는 대신 Startup.cs 에 직접 추가할 수 있습니다.
[assembly: UserSecretsId("aspnet-TestApp-ce345b64-19cf-4972-b34f-d16f2e7976ed")]
또한 다음을 사용해야 합니다.
builder.AddUserSecrets<Startup>();
지정된 유형의 어셈블리에서 해당 속성을 검색합니다. 이 경우 Startup 클래스를 사용했습니다.
참고: 이 기능은 2.0:에서 더 이상 사용되지 않습니다(1.0.2 및 1.1.1에서는 더 이상 사용되지 않는 것으로 표시됨)
builder.AddUserSecrets();
소스 코드에서 사용자 비밀 설정과 호출을 확인했습니다.AddUserSecrets()
유형을 지정하지 않으면 다음 작업이 수행됩니다.
var attribute = entryAssembly.GetCustomAttribute<UserSecretsIdAttribute>();
if (attribute != null)
{
return AddUserSecrets(configuration, attribute.UserSecretsId);
}
// try fallback to project.json for legacy support
try
{
var fileProvider = configuration.GetFileProvider();
return AddSecretsFile(configuration, PathHelper.GetSecretsPath(fileProvider));
}
catch
{ }
// Show the error about missing UserSecretIdAttribute instead an error about missing
// project.json as PJ is going away.
throw MissingAttributeException(entryAssembly);
그것은 그것을 찾기 위해 노력하고 있습니다.UserSecretsId
어셈블리의 속성을 확인하고 실패하면 project.json에서 찾을 수 있는지 확인합니다.그런 다음 (댓글이 있는 대로) 누락된 속성에 대한 오류를 반환합니다. 이 속성은 더 이상 사용되지 않으므로 project.json에 대해 불평하고 싶지 않습니다.
저는 제 상황에 있는 사람들을 위해 이 답변에 추가하고 싶습니다.
.NET Core 콘솔 앱을 작성하고 있으며, 비밀 관리자를 사용하려고 합니다(콘솔 앱용인지는 확실하지 않습니다).오류를 제거할 수 있는 유일한 방법은 비밀 관리자를 사용하던 어셈블리의 어셈블리 수준 속성을 사용하는 것이었습니다.
말씀드렸듯이, 저는 비밀 관리자가 콘솔 앱을 위한 것인지 확실하지 않습니다..xproj 파일과 .csproj 파일에 문제가 있을 수 있습니다.
나의.NET Core 3.1
Worker Service에는 웹 프로젝트 이상의 추가 설치가 필요했습니다.
Program.cs
에 시대에CreateHostBuilder
내가 필요로 했던 방법:
.ConfigureAppConfiguration((ctx, builder) =>
{
// enable secrets in development
if (ctx.HostingEnvironment.IsDevelopment())
{
builder.AddUserSecrets<Worker>();
}
})
하지만 (내 웹 프로젝트와 달리) 이것을 명시적으로 추가해야 했습니다.nuget package
:
install-package Microsoft.Extensions.Configuration.UserSecrets
그 후에 저는 비밀에 접근할 수 있었습니다.
언급URL : https://stackoverflow.com/questions/40704760/invalidoperationexception-could-not-find-usersecretsidattribute-on-assembly
'programing' 카테고리의 다른 글
C#을 사용하여 .NET에서 현재 사용자 이름을 가져오려면 어떻게 해야 합니까? (0) | 2023.05.24 |
---|---|
PostgreSQL: ERROR: 연산자가 존재하지 않습니다. 정수 = 문자가 다양합니다. (0) | 2023.05.24 |
산란 과정의 자식이 되지 않고 새로운 과정을 시작합니다. (0) | 2023.05.24 |
nodejs 스크립트 내의 mongo 데이터베이스에 있는 모든 컬렉션 나열 (0) | 2023.05.24 |
Bash의 어레이에서 고유한 값을 가져오려면 어떻게 해야 합니까? (0) | 2023.05.24 |