我们有一个AS400,需要使用我们的.NET应用程序进行通信。我们目前开发在运行Windows 2003/2008的Web应用程序,并且必须运行AS400客户端安装程序以在使用提供程序的Web应用程序的每个服务器上加载.NET提供程序。
提供程序也通过AS400客户端安装程序加载到我们的开发客户端中。
我们目前遇到了一个问题,当我们将客户端PC更新为Windows 7时,我们被迫更新我们的AS400客户端访问软件。当然,这要求我们更改在我们的.NET项目中使用的DLL,如果我们需要对应用程序进行更改,则需要在服务器上加载新版本的.NET提供程序。
问题是,如果我们有许多Web应用程序都使用此.NET提供程序,并且我们突然加载了新版本,那么它将破坏所有Web应用程序,直到我们可以更换每个项目中的DLL并重新部署它们到服务器。
我一直在努力寻找一些可能的解决方案,并想知道哪个是最好的?或者,是否有任何更好的方法来解决此问题?
- 链接服务器 - 我们通过SQL 2005设置了链接服务器到AS400,它确实起作用,但速度很慢,并且无法与Entity Framework一起使用。这似乎足够快用于SELECT查询,但插入非常慢,查询需要使用涉及OPENQUERY的更复杂SQL。我尝试设置一个视图通过到DB2表,但查询要么比OPENQUERY慢,要么有时不起作用。 - Web服务 - 我考虑通过单个Web服务包装所有的DB2通信,在这里当更新出现时,我们只需要担心一个故障点。我担心速度和向后兼容性。 - DLL包装器 - 我也考虑将DB2功能包装在自己的类库中,然后将其加载到GAC中。再次,单个故障点。但是,我从未接触过GAC,所以我不确定会引入什么新问题,我仍然需要担心向后兼容性。 - 新VM服务器 - 另一个选择是设置一个新的VM应用程序服务器,具有新的.NET提供程序,然后逐个移动应用程序,然后可以丢弃旧服务器。 - 交换DLL - 我没有尝试过这个,但我认为我可以使用新的.NET提供程序重新编译每个应用程序,并在服务器上的每个应用程序中交换包含DB2访问代码的DLL。(我已经在DB2提供程序周围使用了一个包装类,并且它在它自己的DLL中)。唯一可能的问题是如果我们的其他开发人员还没有使用新的AS400客户端版本,并且他们已经部署了应用程序。我们至少需要更新他们的AS400客户端。
谢谢!
提供程序也通过AS400客户端安装程序加载到我们的开发客户端中。
我们目前遇到了一个问题,当我们将客户端PC更新为Windows 7时,我们被迫更新我们的AS400客户端访问软件。当然,这要求我们更改在我们的.NET项目中使用的DLL,如果我们需要对应用程序进行更改,则需要在服务器上加载新版本的.NET提供程序。
问题是,如果我们有许多Web应用程序都使用此.NET提供程序,并且我们突然加载了新版本,那么它将破坏所有Web应用程序,直到我们可以更换每个项目中的DLL并重新部署它们到服务器。
我一直在努力寻找一些可能的解决方案,并想知道哪个是最好的?或者,是否有任何更好的方法来解决此问题?
- 链接服务器 - 我们通过SQL 2005设置了链接服务器到AS400,它确实起作用,但速度很慢,并且无法与Entity Framework一起使用。这似乎足够快用于SELECT查询,但插入非常慢,查询需要使用涉及OPENQUERY的更复杂SQL。我尝试设置一个视图通过到DB2表,但查询要么比OPENQUERY慢,要么有时不起作用。 - Web服务 - 我考虑通过单个Web服务包装所有的DB2通信,在这里当更新出现时,我们只需要担心一个故障点。我担心速度和向后兼容性。 - DLL包装器 - 我也考虑将DB2功能包装在自己的类库中,然后将其加载到GAC中。再次,单个故障点。但是,我从未接触过GAC,所以我不确定会引入什么新问题,我仍然需要担心向后兼容性。 - 新VM服务器 - 另一个选择是设置一个新的VM应用程序服务器,具有新的.NET提供程序,然后逐个移动应用程序,然后可以丢弃旧服务器。 - 交换DLL - 我没有尝试过这个,但我认为我可以使用新的.NET提供程序重新编译每个应用程序,并在服务器上的每个应用程序中交换包含DB2访问代码的DLL。(我已经在DB2提供程序周围使用了一个包装类,并且它在它自己的DLL中)。唯一可能的问题是如果我们的其他开发人员还没有使用新的AS400客户端版本,并且他们已经部署了应用程序。我们至少需要更新他们的AS400客户端。
谢谢!