在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