在Windows Server 2003/IIS環境中運行SQL Server 2005的VB 6.0/ASP(不是.NET)Web應用程序。有運行於其上的ac/C++組件(exe/service)服務器。VB6.0和Windows 2003集羣
客戶希望在Windows羣集環境中運行。由於使用Windows API GetComputerName而出現問題。這將拉取實際的服務器名稱,而不是「別名」聚簇名稱。
通過在該exe文件的窗口中設置一個屬性,可以強制getcomputername調用返回網絡名稱(在本例中爲別名集羣名稱),從而修復了c/C++組件。
VB/ASP部分也調用getcomputername。是否有一些設置,類似於你如何定義一個c/C++ exe,你可以強制getcomputername使用網絡名稱?
我們看到的是,當網頁登錄屏幕加載版本/功能信息時,出現錯誤,指出:object〜method〜of〜not found。如果我們手動將activecomputername註冊密鑰更改爲別名羣集名稱,則此錯誤消失。不能使用這個作爲一個長期的修復,因爲一些窗口過程出現並將這個關鍵值恢復爲正確的名稱。
有沒有人有建議在羣集env中破壞vb應用程序?我寧願不必更改代碼,如果必須將應用程序編寫爲支持羣集,纔會感到半不安。
謝謝!
更新7/31/2009
我想知道是否有辦法來告訴IIS(或分配給網站VB)通過使用網絡節點名稱,而不是本地計算機名稱MS羣集管理工具。我認爲這是我迄今爲止與每個人的建議都脫節的地方。再次,我可以在集羣管理工具中添加c/C++應用程序,並將其配置爲在不修改任何代碼的情況下使用網絡節點名稱。有沒有辦法爲在IIS中運行的VB/ASP做同樣的事情?是否必須配置IIS進行羣集?
也許你可以嘗試玩DNS條目或本地主機文件。 GetComputerName下一次調用將解決集羣的IP ...我不確定這是否可行,但值得一試。 – 2009-07-16 15:26:51