環境 DB Windows2000Server + SqlServer2000
WEB Windows2000Server + IIS5.1?
WEBサーバーに存在する、VB6SP5で作成したSAMPLE.EXEを単体で実行すると
問題なくDBに接続できますが、IISでactiveX.Dllからshell関数で呼出した
同じSAMPLE.EXEからは、DBに接続するときに以下の様なエラーが表示されます。
※タスクマネージャーで確認すると、SAMPLE.EXEは正常に起動しています。
Err.Number = -2147467259
Err.Description = [DBNMPNTW]ConnectionOpen (CreateFile()).
SAMPLE.EXEでは以下のように、DBに接続を試みています。
strConn = "Provider=MSDataShape.1;Persist Security Info=False;Connect Timeout=15;" _
& "Data Source=192.***.***.***;" _
& "User ID=sa;" _
& "Password=;" _
& "Initial Catalog=DB_NAME;" _
& "Data Provider=SQLOLEDB.1"
Set objConn = New ADODB.Connection
objConn.ConnectionString = strConn
objConn.Open
エラーからすると、名前付きパイプの問題でもあるようですが
EXEをDOS窓またはエクスプローラー上から実行すると問題ないので、
実行ユーザーの権限の問題でしょうか?
activeX.DllからはDBに接続できます。
どうしてでしょうか。
宜しくお願い致します。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
接続時にネットワークライブラリの指定が無いので名前付きパイプでの接続になっていますね。
IIS+ASPから呼び出したActiveX DLL内でshell関数で実行したプロセスの実行ユーザーはIISの匿名ユーザー?あるいは何かのシステムアカウント?になっているのだと思いますが、SQL-Serverがそのユーザーでの接続を許していないので接続できないのだと思います。
名前付きパイプの場合は信頼関係接続でもそうでなくてもまずSQL-Serverがアプリを実行しているユーザーを認識できないと接続はできません。
手で実行すると接続できるのは、OSにログインしているユーザーはSQL-Server側で認識できているからです。
このようなケースではActiveX DLLをコンポーネントサービスに登録して特定ユーザーが実行している状態を作るか、ネットワークライブラリをTCP/IPソケットに変更して信頼関係接続ではなくSQL-Server認証で接続すればOKです。
No.1
- 回答日時:
Shellで呼び出すと、ユーザーが変わってしまうようですよ。
サービス化して、サービスのユーザで実行されるようにするとか、EveryOneでのアクセス権を許すとかしないといけないようです。
以前、Runasで何とかならないかとやってみたのですが、うまくいきませんでした。
想像なのですが、タイムアウトするような処理をExeに分離しようとしているとかですか?
それなら、DLL内で別スレッドを呼ぶとかで回避できないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- その他(開発・運用・管理) Windowsバッチファイルでリモートデスクトップを自動ログインするが確認画面が出る対処方法 1 2022/12/19 15:48
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- オープンソース Pythonのコードをexe化 1 2023/07/03 08:01
- 情報処理技術者・Microsoft認定資格 応用情報処理技術者試験のシステム利用率の計算について 2 2022/03/28 07:43
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- UNIX・Linux いつの間にか自宅サーバーが見れなくなっていた時のトラブルシューティング手順をご教示ください 4 2023/02/15 21:01
- ドメイン・サーバー・クラウドサービス FileZillaを使用してwpXサーバーに接続できない 2 2022/03/29 21:02
- その他(IT・Webサービス) エクセルの実行ファイルについての質問です。 1 2023/05/04 03:58
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ADOを利用したODBC、OLEDB経由...
-
SQLで同じDBに対し2つのコネク...
-
ACCESS VBAでサーバー起動して...
-
ACCESSでのトランザクション処理
-
データベースのOPEN,CLOSEについて
-
[IIS(ASP)+SQLserver]MySqlAdmi...
-
SQL Serverの移行について
-
DB接続ができなくなって困って...
-
oo4oについて
-
クライアントでの処理が遅い
-
VB2005からSQLServer2005への...
-
Access から SQLserver に接続...
-
サーバー接続時、ホスト名はIP...
-
VB6.0(SP6)でMySQLに接続したい
-
ACCESSからのODBC接続のみ応答...
-
SQLServerの接続が突然できなく...
-
drop user できない。ORA-01940
-
ACCESSからSQLServerのデータを...
-
Oracle 8i コンマ(,)を含むデ...
-
GROUP BYでエラーが発生
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
symfowareへのODBC接続方法
-
ACCESSからのODBC接続のみ応答...
-
ACCESSからSQLServerのデータを...
-
SQLで同じDBに対し2つのコネク...
-
DB接続ができなくなって困って...
-
SQL Serverの移行について
-
ADOを利用したODBC、OLEDB経由...
-
drop user できない。ORA-01940
-
IBM系のDBでIMSに関して
-
Access から SQLserver に接続...
-
SQLServer,接続失敗時のエラー...
-
SQLSERVERへのODBC接続について
-
SQLServerの接続が突然できなく...
-
ACCESS ODBC 接続ダイアログ 非...
-
ACCESS VBAでサーバー起動して...
-
クライアントでの処理が遅い
-
AS/400のデータをMS_ACCESSでも...
-
SQLServer2005 Express リモー...
-
サーバー接続時、ホスト名はIP...
-
データベースへ接続できない
おすすめ情報