0

私はIISサイトを作成し、それを配備フォルダに向けました。私はstdoutロギングを有効にしました。これはエラーです:IISへのAspnetコア展開 - HTTPエラー502.3

info:Microsoft.Extensions.DependencyInjection.DataProtectionServices [0] ユーザープロファイルが利用可能です。キーリポジトリとして 'C:\ Users \ No管理コード\ AppData \ Local \ ASP.NET \ DataProtection-Keys'を使用し、残りのキーを暗号化するにはWindows DPAPIを使用します。 失敗:Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler [1] クエリの結果を反復処理中にデータベースで例外が発生しました。 System.Data.SqlClient.SqlException:ログインで要求されたデータベース "KeyStoneDb"を開くことができません。ログインに失敗しました。 ユーザー 'IIS APPPOOL \ No Managed Code'のログインに失敗しました。

したがって、必要なすべての権限を持つSQLへのログインを追加しました。 DEV - fineで再テストされましたが、IISを実行しても問題は残ります。使用されているアプリケーションプールは「管理されていないコード」です。

なぜアプリケーションはデータベースに接続できませんか?

答えて

0

IIS AppPoolアカウントは仮想アカウントなので、実際にはシステム上の通常のユーザーとして存在しません。

そのIDを使用してネットワークリソースにアクセスすることはできません。これらのアカウントと通信する必要があるファイル共有やデータベースなどの共有\ネットワークリソースには、適切な権限を持つ 'domain \ machinename $'が必要です。

DBに適切な権限を 'domain \ machinename $'に与えてください。それはそれを行う必要があります。

+0

適切なデータベーススキーマにアクセスできるSQL Serverログインとユーザーログインをセットアップしました。次に、aspnet core(No Managed Code)用の正しいアプリケーションプールを設定します。アプリケーションプールIDとして、私はWindows管理者のログインアカウントを使用しました。テストすると、アプリケーションプールID(接続として..)、資格情報が有効であることを示す成功メッセージが表示されます。しかし、私がサイトを閲覧すると、エラーが発生します。ユーザー 'IIS APPPOOL \ No Managed Code'のログインに失敗しました。 WindowsのログインにアプリケーションプールIDを設定したときに、このアカウントが使用されるのはなぜですか? – Greg

+0

適切なappsettings.jsonに接続文字列が正しく設定されています使用されている環境を確認します。間違ったappsettings.jsonが私に慣れているようです。 –

+0

これはappsettings.jsonの接続文字列です。{ "ConnectionStrings":{ "DefaultConnection": "データソース= GREG-THINK \\ SQLEXPRESS;初期カタログ= KeyStoneDb;統合セキュリティ= true; MultipleActiveResultSets = true" } 、 "ロギング":{ "IncludeScopes":偽、 "ログレベル":{ "デフォルト": "デバッグ"、 "システム": "情報"、 "マイクロソフト": "情報" } } } – Greg

関連する問題