クライアント側VB6アプリとサーバー側WinXPのファイアウォールで接続不能になる問題

このQ&Aのポイント
  • WinXP(SP3)上で動作するVB6アプリケーションとWindowsファイアウォールの組み合わせにおいて、接続不能な問題が発生しています。
  • サーバ側ではファイアウォールを有効化しており、これが原因でクライアント側のVB6アプリが接続できなくなっています。
  • VB6アプリをファイアウォールの例外として登録する方法や、使用しているプロトコルとポート番号を登録する方法を探しています。
回答を見る
  • ベストアンサー

クライアント側VB6アプリとサーバー側WinXPのファイアウォール

以下の環境にて接続不能で困っています。 <サーバ側>  WinXP(SP3) SQLServer2000 Windowsのファイアウォールを有効化している。 <クライアント側>  WinXP VB6で作成したアプリケーション。データベース接続にはADOを使用しています。 この環境で、サーバ側のファイアウォールを無効化すれば接続できますが、有効化すれば接続不能になります。 VB6アプリをファイアウォールの例外として登録すれば良いのかとも思いますが、VB6アプリは200程のEXEで構成しているのでひとつひとつ登録するのは困難です。 使用しているプロトコルとポート番号を登録すれば良いのかとも思いますが、ADOがSQLServerへ接続するときにどのプロトコル(おそらくはTCP)とポート番号を使用するのかが不明です。 サーバ側のファイアウォールを有効にした上で、接続できる良い方法をご存知でしたらお教え願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • OMEGAT
  • ベストアンサー率70% (455/642)
回答No.1

SQL Server 2000の環境がないので自信なしですが、サーバー側のファイアウォールの[例外]に[プログラムの追加]で、sqlservr.exeを登録してみてはどうでしょうか。

yuyan1962
質問者

補足

その後、サーバ側のFireWallのログをみてみてら、UDP:1434と TCP:80がリジェクトされていたので、このプロトコル:ポートを通すようにしてみたらすんなり動きました。 TCP:80ってHTTPだったと思うのですが、関係あるのでしょうか? また UDP:1434は何の役割を果たしているのでしょうか?

関連するQ&A

  • クライアント側のポート番号

    ネットワークの勉強を始めたばかりの者です。 ポート番号に関する本で、HTTPポートに関して次のように書いてありました。 「HTTPポートは、WebブラウザでWebページを閲覧するときに使用される「HTTPプロトコル」を用いて通信を行う際にデータが通過するポートです。 HTTPプロトコルでは、通信の際だけ80番のHTTPポートを開き、通信が完了するとポートは閉じます。 例えば、あるWebページをWebブラウザに表示するにあたり、表示されるまでは、そのWebページのデータを受信している状態なので80番ポートは開いていますが、Webページデータを完全に受信し終わり、Webブラウザに表示されたら80番ポートは閉じます。 つまり、一回の通信毎に80番ポートを開けたり閉じたりを繰り返しています。」 私は、変だと思いました。 私は、クライアント側のポート番号は、その場で適当な番号が割り当てられるものだと思っているからです。 上の引用の中で、80番というWell-Knownポートで受信しているという話は解せなのです。 どう読んでも、上記の引用部分はクライアント側の話なのです。 (サーバ側はクライアント側(ブラウザ)からいつ要求されるかわからないから、「開けたり閉じたり」ということはないと思うのです。) http://www.mm-labo.com/computer/tcpip/ipaddress/portsort.html このページにも、「クライアント側で使用するポート番号は各OSが動的に割り当てる」と書いてあります。 私がしている勘違いはなんでしょうか。

  • LANクライアントからメールサーバにつながらない

    Red Hat Linuxでプロキシを立て、これを通してLANのWinXP機からインターネットにつないでいます。 ブラウザは問題ないのですが、なぜかISPのメールサーバにつながらず、socket error 11004が出ます。どのメーラーを使っても状況は変わりません。 サーバ名などの設定は間違いありません。ファイアウォール設定も、SMTPとPOPのポートはWin機、Linux機とも開けてあります。tcpの110ポートも開けましたが駄目でした。 Win機のインターネットオプションでは「すべてのプロトコルに同じプロキシを使う」の設定にしています。 いろいろ調べましたが解決策の見当がつきません。Linux(サーバ)側のプロキシ設定あたりが問題なのでしょうか。漠然とした質問かもしれませんが、解決への方向性だけでも教示いただけると助かります。

  • vb.netでSQL serverの接続を行うコーディング

    vb.net (vb 2005)でSQL serverの接続を行うコーディングがよくわかりません。 ADO,もしくはDAOを使うところまでわかったのですが、具体的なコーディングがわかりませんでした。 VBの教本とかではSQL serverではなくAccesへの接続だったので、どうコーディングしてよいか混乱しています。 (ADOの場合とDAOの場合の違い)

  • VB6 SQLサーバー 2005 

    お世話になります。 今まではVB6 + SQLサーバー 2000 に ADO を用いて接続できたいたのですが、 今回 DBをSQL サーバー 2005 Express Edition に替えたところ上手く接続 できません。 「実行時エラー 2147467259  データーソース名および指定されたドライバが見つかりません。」 とエラー表示されます。  

  • VB.NET Oracle接続 クライアント混在

    <環境1> WinXP Oracle Client 7(?) <環境2> Win7 Oracle Client 10g(10.1.0.2.0) <サーバ> Oracle Database 7(?) こんにちわ、いつもお世話になってます。 VB.NETでoo4oにてOracleに接続するWinアプリがあります。 (なんでODPやADOを使わないんだ、という意見はナシでお願いします そもそもOracle7ではODP.NETってなかったもんですから。。。) 今までは環境1だけでしたが、環境2が出現しました。 当然、oo4oなのでInProcServerのバージョン違いにより 環境2からOracleDBへの接続はエラーとなります。 この環境2への対応が必要となっています。 そこでお聞きしたいのが 環境1、2両方に対応させるためにどのような方法をとるのがベストか、です。 現状、考えている方法は ・そもそもEXEをOra7用(InProc使用)とOra10g(ODP.NET)用に分ける ・Win7ProならXPモードにOra7をインストールする ・いっその事DB接続から何からADO.NETにかえる できれば理由付きでどんな方法が最善かご教授願います。

  • サーバ・クライアント環境で2重起動防止したい

    現在、2重起動防止の機能を考えています。 システムとしてはサーバー(Win2003Server)にアプリを置いて、クライアント(WinXP)からリモート接続で繋いでそのアプリを起動します。この時、クライアント1にてアプリを実行していた場合はサーバ及び他クライアントではアプリを起動できないようにしたい。 CreateMutexとWaitForSingleObjectで出来るかと思ったのですが、(作り方が悪いのか)出来ませんでした。(x_x) VC++6.0を使用しています。VBの経験はそれなりにありますが、VCは初心者です。 よろしくお願いいたします。

  • ftpクライアントでの接続後の、サーバ側のファイル一覧の取得方法

    c言語で、ftpプロトコルを使用し、ftpサーバまで接続することができたまでは良かったのですが、サーバ側のファイル一覧を取得する方法(フローチャート)が分かりません。 すみませんが、ご教授よろしくお願いいたします。

  • クライアントからVB2005 .netアプリでSQL Serverに接続できない

    プログラムの配布で困っています。 ■環境 【開発環境兼サーバー】 ・WindowsXP Professinal SP2 ・SQL Server 2005 Express ・Visual Basic 2005 Express ・Microsoft .net Framework 3.5 SP1 ・MDAC 2.8 【クライアントA】 ・WindowsXP Professinal SP2 ・SQL Server 2005 Express ・Visual Basic 2005 Express ・Microsoft .net Framework 3.5 SP1 ・MDAC 2.8 【クライアントB】 ・WindowsXP Home SP2 ・Microsoft .net Framework 3.5 SP1 ・MDAC 2.8 上記環境でプログラムを作成し、VBの 発行ウィザードで 配布プログラムを作成し、クライアントで実行してみました。 .netも無事インストールされ、プログラムを起動すると、 .net Frameworkから 「System.Data.SqlClient.SqlException: SQL Server への接続を確立しているときにネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないかアクセスできません。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。 (provider: SQL ネットワーク インターフェイス, error: 26 - 指定されたサーバーまたはインスタンスの位置を特定しているときにエラーが発生しました)」 とでて起動できません。 開発環境兼サーバーではもちろんローカルのSQL Serverに接続できます。 クライアントAから開発環境兼サーバーへも接続できます。 クライアントBから開発環境兼サーバーへは接続できません。 ちなみに、クライアントBからODBCに設定もエラーで出来ませんでした。 データベースにはADO.netで使用してます。 いろいろとネットで検索して調べてみましたが、解決には 至りませんでした。 クライアントに何か足りないものがあるのでしょうか。 長くなりましたが、どうぞよろしくおねがいします。

  • VB2008でADO接続(ADO.NETではありません)で

    VB2008でADO接続(ADO.NETではありません)で SQLServerに接続するにはどうすればいいのでしょうか? よろしくお願いします。

  • SQLServer の DB を、VB2005 で作成したアプリから作りたい

    こんにちは。 APサーバにVB2005 DBサーバに SQLServer 2005 という環境で動作する自作アプリケーションがあります。 このアプリを新規の環境にセットアップする際には、 1. DBサーバにSQLServer をインストール 2. SQLServer Management Studio で、データベース作成 3. 同じくテーブル作成。 4. APサーバにアプリケーションをインストール 5. 動作確認 という流れになりますが、セットアップの為に 技術者が必要になってしまいます。 そこでエンドユーザが簡単にセットアップできるように 2.と3. を、セットアップ用プログラムから 自動で走らせたく思っています。 APサーバ上で動くプログラムで、 DBサーバ上のSQLServer内に「hogehoge」というデータベースを 作成するにはどのように記述すれば良いのでしょうか。 宜しくお願い致します。