-1

クラシックASPで記述された当社のWebサイトの自分のマシンでテスト環境をセットアップしようとしています。アイデアは、統合Windows認証を使用してデータベースに接続することです。

次の接続文字列を使用しています

Provider=SQLOLEDB.1;Server=localhost;Database=Filbert;Integrated Security=SSPI;

しかし、ブラウザは次のように応答します

Microsoft OLE DB Provider for SQL Server (0x80004005)
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied.

SQLログで私は見ることができます

Login failed for user 'NT AUTHORITY\SYSTEM'. [CLIENT: <local machine>]
Error: 18456, Severity: 14, State: 16.

状態16のエラーはwheです

Windows XP SP3、IIS 5.1、SQLServer2005を実行しています

編集:代わりにSQL認証を使用してログインを作成してテストしました。SQL Management Studioを使用してSQL認証でログインできますが、ASPから試行しても同じエラーが発生します

4

2 に答える 2

0

SQLプロバイダーをSQLNCLIに切り替えることで問題を解決できました

Provider=SQL;Server=localhost;Database=Filbert;Integrated Security=SSPI;
于 2012-06-19T08:21:12.553 に答える
0

SQLサーバーで特定のユーザーを作成し、そのユーザーでデータベースへの接続をテストしてから、aspコードで次のことを行うことをお勧めします

<%
Provider=SQLOLEDB.1;Password=YourPassword;Persist Security Info=True;User ID=YourUserID;_
       Initial Catalog=YourDB;Data Source=YOUR_LOCAL_SERVER_NAME

 Set commInsert = Server.CreateObject("ADODB.Connection")
 commInsert.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;_
     PersistSecurity Info=False;Initial Catalog=_
     YourDB;_Data Source=YOUR_LOCAL_SERVER_NAME

 'now you can eg do an insert
 strInsertCommand = "INSERT INTO tableName(TextField, NumericField)_
     VALUES('ABCDE', 12345);"
 commInsert.Execute(strInsertCommand) ' Execute the insert command
 commInsert.Close()
 Set commInsert = Nothing
 %>
于 2012-06-18T11:14:36.603 に答える