1

aspnetdbのデータベース (asp.net のメンバーシップ プロバイダーを使用するときに作成されるデータベース) の Windows ファイルのアクセス許可は、しばらくするとリセットされ続けます。これは、SQL Server 2005 Express および SQL Server 2008 Express で発生しました。

データベースには、asp.net Web サイトからアクセスします。これが発生すると、Web サイトはログインが無効であると表示し、パスワードをリセットしようとすると、失敗したというエラーが生成されます。の Windows ファイルのアクセス許可を調べるとaspnetdb.mdf、すべてのユーザーとグループのアクセス許可が失われています。再び機能させる唯一の方法はaspnetdb、バックアップからファイルを復元することです。

データベースの autoclose と autoshrink を false に設定し、-t1802オプションを SQL Server に渡そうとしましたが、この問題は時々発生します。データベースにアクセスする Web サイトは、IIS 7 および asp.net 3.5 で実行されています。

編集:私の接続文字列は次のとおりです。

<add name="LocalSqlServer" connectionString="data source=.\sqlexpress;Integrated Security=SSPI;initial catalog=aspnetdb"/>

<add name="ConnectionString" connectionString="Data Source=(local)\sqlexpress;Initial Catalog=NetDevices;Integrated Security=True" ProviderName="System.Data.SqlClient"/>

私はデータベースを動的にアタッチしていません.SQL管理エクスプレスでaspnetdb.mdfファイルを明示的にアタッチしています。

4

1 に答える 1

2

私の意見では、SQL Server データベースを使用するためのデータベース ファイルをアタッチする.mdfアプローチ全体には重大な欠陥があります。

多くの人が目にしている潜在的な問題が多数あります。リセットされる権限は、新しい追加の問題です。

私の意見では、本当の解決策

  1. SQL Server Express をインストールします (このアプローチを現在使用している場合は、既にインストール済みです)。

  2. SQL Server Management Studio Express をインストールする

  3. SSMS Expressでデータベースを作成し、論理名を付けます (例: ASPNETDB)

  4. 論理データベース名(サーバー上で作成したときに指定)を使用して接続し、物理データベース ファイルとユーザー インスタンスをいじらないでください。その場合、接続文字列は次のようになります。

    Data Source=.\\SQLEXPRESS;Database=ASPNETDB;Integrated Security=True
    

    そして、それ以外はすべて以前とまったく同じです...

于 2013-03-11T21:57:32.633 に答える