Windows XPで実行しているときに、IISのASP.NETWebアプリケーションで次のエラーが発生します。Webアプリケーション内でWindows認証を使用しています。通常はSQLServer認証(混合モード)を使用しますが、読み取り権限を除いて、このデータベースサーバーにアクセスできません。これらは、Windowsネットワーク認証ユーザーを使用することを意味するTrusted Connections(またはIntegrated Security = SSPI;)のみを許可します。
エラー:
Login failed for user ''. The user is not associated with a trusted SQL Server connection.
.NETコード:
SqlConnection conn = new SqlConnection(
"server=server_name;" +
"Integrated Security=SSPI;" +
"database=db_name;" +
"connection timeout=30;");
SqlDataReader rdr = null;
List<Ticket> list = new List<Ticket>();
try
{
conn.Open();
SqlCommand cmd = new SqlCommand("SELECT TOP 10 [HEATSeq],[AssignedBy] FROM [dbo].[Asgnmnt]", conn);
rdr = cmd.ExecuteReader();
while (rdr.Read())
{
Ticket record = new Ticket();
record.ticket_id = rdr[0].ToString();
record.assigned_by = rdr[1].ToString();
}
}
catch (Exception e)
{
string x = "";
}
finally
{
if (rdr != null)
{
rdr.Close();
}
if (conn != null)
{
conn.Close();
}
}
これは、ジョン・スキートの最初の質問で私が答えたのと同じタイプの問題です。Windows 7では、通常、ローカルマシンまたはネットワークサービスを使用して実行するようにアプリケーションプールを設定します(SQL Server認証を使用しないことを選択した場合)。IIS6でアプリケーションプールのユーザーを変更する場所がわからない場合を除きます。
ASP.NETから「ユーザーインスタンス」データベースにアクセスする際のユーザー権限エラー
この記事を読みましたが、これはWindowsXPではなくWindows7のIISに適用されます。WindowsXPでこれを解決するにはどうすればよいですか。このコードをコンソールアプリケーションで実行すると、正常に接続されることに注意してください。