1

Windows Server 2003 /IIS環境で実行されるVB6.0/ ASP(.NETではない)Webアプリケーションとsql2005サーバー。サーバー上で実行されるac/ c ++コンポーネント(exe / service)があります。

お客様は、Windowsクラスター環境で実行したいと考えています。WindowsAPIGetComputerNameの使用が原因で問題が発生します。これにより、「エイリアス」クラスター名ではなく、実際のサーバー名が取得されます。

c / c ++コンポーネントは、そのexeのWindowsでプロパティを設定することで修正されました。これにより、getcomputername呼び出しはネットワーク名(この場合はエイリアスクラスター名)を返すように強制されます。

VB / ASP部分には、getcomputernameへの呼び出しもあります。ac / c ++ exeを定義する方法と同様に、getcomputernameにネットワーク名を使用させることができる設定はありますか?

Webページのログイン画面が読み込まれると、バージョン/機能情報が表示されるはずですが、「メソッド〜オブジェクトの〜が見つかりません」というエラーが表示されます。activecomputername regキーをエイリアスclusternameに手動で変更すると、このエラーはなくなります。一部のWindowsプロセスが実行され、このキー値が正しい名前に戻されるため、これを長期的な修正として使用することはできません。

クラスター化された環境でvbアプリを削除するための提案はありますか?コードを変更する必要がないことを望みます。クラスター対応になるようにアプリを作成する必要がある場合は、半ショックを受けます。

ありがとう!

2009年7月31日更新

MS Cluster管理ツールを使用して、ローカルマシン名の代わりにネットワークノード名を使用するようにIIS(またはWebサイトに割り当てられたvb)に指示する方法があるかどうか疑問に思いました。これまでの皆さんの提案で、私の断絶が起こっているところだと思います。ここでも、クラスター管理ツールにc / c ++アプリケーションを追加し、コードを変更せずにネットワークノード名を使用するように構成することができました。IISで実行されるVB/ASPに対して同じことを行う方法はありますか。IISをクラスタリング用に構成する必要がありますか?

4

2 に答える 2

1

これを vb コードの構成要素として追加して、それを取り込めますか?


"ConfigCore.inc"次の内容で名前が付けられたコードに新しいファイルを追加します。

Dim isClustered
isClustered = false

変数が少なくとも定義および初期化されていることを確認する必要があるため、ユーザーはこのファイルを変更しないでください。"ConfigSetup.inc"次に、この ConfigCore.inc ファイルを含む、という名前のアプリに別の新しいファイルを追加します。ここでは、目的の動作を設定する方法についてコメント付きの例を提供します。

''Uncomment the following line to enable this app to run in  a clustered environment
''isClustered = True

このファイルはユーザー編集可能として文書化されており、必要に応じてスコープ内に収まるように、別の場所に含めます。

于 2009-07-16T15:22:39.270 に答える