Blazor CRUDサンプル:IISサーバー上の要求に対するHTTPエラー500

asp.net-core blazor c# iis

質問

Blazor CRUDの例をローカルサーバーに公開しました。ウェブサイトは正常に動作していますが、フェッチデータページに行くとHTTPエラー500が表示されます。私はVisual Studio上で実行するとすべてうまく動作しますが、IISサーバーはうまく動作します。コンテキストファイルに接続文字列があります。また、アプリケーションプールの設定ページで接続文字列を編集しましたが、まだ動作しません。

これは私がコンテキストファイルで使用しているコードです:

        optionsBuilder.UseSqlServer(@"Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=master;Trusted_Connection=True;");

私はまた、この接続文字列をIIS用に使用します。 ここに画像の説明を入力

受け入れられた回答

答えは、2つの異なるLocalDBインスタンスがここにあることです。 Windowsサービスとして実行されているSQL Server Expressインスタンスとは異なり、LocalDBインスタンスはユーザープロセスとして実行されています。異なるWindowsユーザーがLocalDBに接続すると、それぞれのLocalDBプロセスが起動します。 Visual Studioから(localdb)\ v11.0に接続すると、LocalDBインスタンスが開始され、Windowsアカウントとして実行されます。しかし、ApplicationPoolIdentityとしてIISで実行されているWebアプリケーションがLocalDBに接続しているとき、別のLocalDBインスタンスが起動され、ApplicationPoolIdentityとして実行されています!実際には、Visual StudioとWebアプリケーションの両方が同じLocalDB接続文字列を使用していても、異なるLocalDBインスタンスに接続しています。明らかに、LocalDBインスタンスのVisual Studioから作成されたデータベースは、WebアプリケーションのLocalDBインスタンスでは使用できません。

簡単な修正は、LocalDBではなくSQL Server Expressを使用しています

詳細 - https://blogs.msdn.microsoft.com/sqlexpress/2011/12/08/using-localdb-with-full-iis-part-2-instance-ownership/



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ