簡體   English   中英

將 ASP.NET Core 5.0 IdentityServer4 升級到 6.0 錯誤 - 沒有這樣的表:鍵

[英]Upgrading ASP.NET Core 5.0 IdentityServer4 to 6.0 error - no such table: Keys

將帶有 IdentityServer4 的 ASP.NET Core 5.0 升級到 6.0 錯誤后 - 沒有這樣的表:鍵

14:50:02.0033786|Failed executing DbCommand (4ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT "k"."Id", "k"."Algorithm", "k"."Created", "k"."Data", "k"."DataProtected", "k"."IsX509Certificate", "k"."Use", "k"."Version"
FROM "Keys" AS "k"
WHERE "k"."Use" = 'signing'
14:50:02.0179085|An exception occurred while iterating over the results of a query for context type 'xx.com.Data.AppDbContext'.
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 1: 'no such table: Keys'.

我找不到任何關於 IdentityServer 從 .net 5 到 6 遷移的文檔

編輯當您將 ID4 從 .NET Core 5 升級到 6 時,它成為 Duende 服務器。 .NET 6 沒有 ID4。

解決此問題的快速方法:

CREATE TABLE Keys (
    Id                TEXT    NOT NULL
                              CONSTRAINT PK_Keys PRIMARY KEY,
    Version           INTEGER NOT NULL,
    Created           TEXT    NOT NULL,
    Use               TEXT,
    Algorithm         TEXT    NOT NULL,
    IsX509Certificate INTEGER NOT NULL,
    DataProtected     INTEGER NOT NULL,
    Data              TEXT    NOT NULL
);

CREATE INDEX IX_Keys_Use ON Keys (
    "Use"
);

CREATE INDEX sqlite_autoindex_Keys_1 ON Keys (
    Id COLLATE BINARY
);

清潔方式:

services.AddIdentityServer(options => {
    options.KeyManagement.Enabled = false;
}

這是 Keys 表的正確架構

CREATE TABLE Keys ( Id nvarchar(450) NOT NULL CONSTRAINT PK_Keys PRIMARY KEY, Version INTEGER NOT NULL, Created datetime2 NOT NULL, [Use] nvarchar(450), Algorithm nvarchar(100) NOT NULL, IsX509Certificate INTEGER NOT NULL, DataProtected INTEGER NOT NULL,數據 nvarchar(最大)不是 NULL);

CREATE INDEX IX_Keys_Use ON Keys ( [Use] );

創建索引 sqlite_autoindex_Keys_1 ON 鍵( Id );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM