0

私は次のコードを持っています

 SqlConnection conn = new SqlConnection("user id=clearpath\\user;" +
                                                            "password=Password1;server=sqldatamart;" +
                                                            "Trusted_Connection=yes;" +
                                                            "database=LENDER_LOAN_SERVICE;" +
                                                            "connection timeout=30");


    SqlCommand cmd = new SqlCommand("INSERT INTO [LENDER_LOAN_SERVICE].[CMC].[Turn_Times] values('"+dateadded+"','"+username+"','"+prevtime+"','"+type+"','"+newturntime+"')",conn);

    conn.Open();

これは、ローカル開発を行っているときに正常に機能します。ただし、コンピューターのIIS 6にWebサイトを配置すると、次のエラーが発生します。

    Login failed for user 'CLEARPATH\IT-CARLOSDELL$'. 

    Line 42:             SqlCommand cmd = new SqlCommand("CMC.sp_NewDocMod", conn);
Line 43: 
Line 44:             conn.Open();
Line 45: 
Line 46:             SqlDataReader reader = cmd.ExecuteReader();

44行目にエラーがあります。

接続文字列をclearpath\cpereyraからclearpath\IT-CARLOSDELL$に変更しているようです

私のコンピューター名はIT-CARLOSDELLです

これを修正する方法について何かアイデアはありますか?

ありがとう

4

3 に答える 3

1

次のいずれかを実行する必要があります。

  1. CLEARPATH \IT-CARLOSDELL$アカウントにSQLでアクセス許可を与える
  2. アプリケーションプールのIDを、DB内のアクセス許可を持つIDに変更します(おそらくclearpath \ cpereyra)
  3. サイトに認証を設定して、サイトに接続し、SQLDBで権限を持つユーザーになりすます。
  4. Trusted_Connection=yes接続文字列から削除します。

どちらを選択するかは、サイトを保護するために使用するアプローチによって異なります。

ところで:それは接続文字列を変更していません。Trusted_Connection = yesがあるため、そのアカウントを使用しています。ASP.NETワーカープロセスが実行されているアカウントを使用して、データベースへの接続を試みています。

于 2013-01-03T23:42:13.123 に答える
1

アプリケーションプールがプールIDとして「LocalSystem」を使用しているようです。

于 2013-01-03T23:42:18.240 に答える
0

Trusted_Connection=yes接続文字列からを削除します。現在、この文字列は特定のユーザー名とパスワードを示しており、パススルーWindows認証を使用することも示しています。ローカルで実行している場合、WindowsアカウントにはSQLに対する権限があります(私は推測します)が、IISでは、匿名でログオンしている可能性があります。

于 2013-01-03T23:49:11.207 に答える