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をクラスタリング用に構成する必要がありますか?