3

私は ASP.Net MVC を試してきましたが、特に MVC に関連していない問題に遭遇しました。しかし、デフォルトの MVC アプリケーション (新しい MVC プロジェクトを作成するときにウィザードによって作成されるアプリケーション) で認証を取得できず、Windows 7 上の IIS 7 で正しく機能しません。

Visual Studio 環境で実行すると動作しますが、代わりに IIS で実行するように設定を切り替えると、ログインまたは登録を送信しようとして次の例外が発生します。

ユーザーのローカル アプリケーション データ パスの取得に失敗したため、SQL Server のユーザー インスタンスを生成できませんでした。ユーザーがコンピューター上にローカル ユーザー プロファイルを持っていることを確認してください。接続が閉じられます。

これは、Web サイトが Visual Studio では自分のアカウントで実行されているのに、IIS では IUSR アカウントで実行されているためだと思います。例外メッセージに関する Google 検索は、これまでのところ役に立ちませんでした。

では、IUSR アカウントのローカル ユーザー プロファイルを作成できますか? もしそうなら、どのように?IIS 7 の匿名アカウントで SQLExpress エンジンを動作させるために他にすべきことはありますか?

私のアカウントを使用するように IIS Web サイトを構成しようとしましたが、これは私のホーム マシンであるため、私のアカウントにはパスワードがありません。または、これが IIS 7 の初めての経験であり、構成が IIS 5/6 とは大きく異なるため、匿名アクセスに使用するアカウントを構成できる適切な設定が欠けているだけです。

編集:いくつかの追加情報。App_Data フォルダーを空にして IIS から再試行すると、SQLExpress はデータベースの作成を試みて失敗しますが、例外メッセージには次の提案を含む詳細情報が含まれています。

SQLExpress データベース ファイルの自動作成 エラー:

接続文字列は、アプリケーションの App_Data ディレクトリ内のデータベースの場所を使用して、ローカルの Sql Server Express インスタンスを指定します。プロバイダーは、データベースが存在しないと判断したため、アプリケーション サービス データベースを自動的に作成しようとしました。アプリケーション サービス データベースの存在を正常に確認し、アプリケーション サービス データベースを自動的に作成するには、次の構成要件が必要です。

  1. アプリケーションの App_Data ディレクトリがまだ存在しない場合、Web サーバー アカウントには、アプリケーション ディレクトリへの読み取りおよび書き込みアクセス権が必要です。App_Data ディレクトリがまだ存在しない場合、Web サーバー アカウントによって自動的に作成されるため、これが必要です。
  2. アプリケーションの App_Data ディレクトリが既に存在する場合、Web サーバー アカウントには、アプリケーションの App_Data ディレクトリへの読み取りおよび書き込みアクセスのみが必要です。これが必要なのは、Web サーバー アカウントが Sql Server Express データベースがアプリケーションの App_Data ディレクトリ内に既に存在することを確認しようとするためです。Web サーバー アカウントから App_Data ディレクトリへの読み取りアクセスを取り消すと、プロバイダーは Sql Server Express データベースが既に存在するかどうかを正しく判断できなくなります。これにより、プロバイダーが既存のデータベースの複製を作成しようとすると、エラーが発生します。新しいデータベースの作成時に Web サーバー アカウントの資格情報が使用されるため、書き込みアクセスが必要です。
  3. Sql Server Express がマシンにインストールされている必要があります。
  4. Web サーバー アカウントのプロセス ID には、ローカル ユーザー プロファイルが必要です。マシン アカウントとドメイン アカウントの両方のローカル ユーザー プロファイルを作成する方法の詳細については、readme ドキュメントを参照してください。

最初の 3 つの提案が満たされていることをかなり広範囲に確認しました。4番目が私の問題の原因のようですが、その方法がわかりません。提案には、それを説明する readme ドキュメントがあると書かれていますが、私はそのドキュメントを見つけることができませんでした。

4

3 に答える 3

4

私はこの問題も中程度の信頼の下で実行しています。データベースを作成するプロセスには、少なくとも高信頼が必要です。これは、Web.Config を調べて確認できます。

<trust level="TrustLevel" />

Web.Config に信頼が指定されていない場合は、信頼を追加してみて、Full または High に設定してください。これが機能しない場合は、IIS に変更が必要な machine.config があります。

そうは言っても、これを解決するために私が見つけた最善の方法は、aspnet_regsql.exe を使用して必要なテーブルを作成し、Web.Config の接続文字列を変更して直接参照することです。

于 2009-10-08T18:08:33.613 に答える
1

「ディレクトリ 'LocalApplicationData' が存在しません。」 を解決しました。SQL SSIS サービスと SQL Server エージェント サービスが、swql ジョブが使用するように設定されたのと同じアカウントで実行されていることを確認することにより、SQL ジョブを介して SSIS パッケージを実行するときにエラーが発生しました。

私の場合、これはドメイン アカウントでした。

于 2011-05-26T15:51:34.500 に答える
0

解決策: 問題が発生する前に、すべてのアップデートをアンインストールしてみてください。私は数え切れないほどの時間を費やしました - 人生で二度と戻らない無駄な時間 - 成功せずに可能なすべての解決策を読んで従いました. すべての SQL Server 更新プログラムをアンインストールしたところ、すべて正常に動作するようになりました。

于 2012-09-11T16:56:03.023 に答える