Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 使用Informix数据库将基于web的应用程序部署到服务器_.net_Informix - Fatal编程技术网

.net 使用Informix数据库将基于web的应用程序部署到服务器

.net 使用Informix数据库将基于web的应用程序部署到服务器,.net,informix,.net,Informix,背景 访问Informix数据库的C#/.NET web应用程序。 客户端SDK在本地安装。 项目引用IBM SDK目录中的IBM.Data.Informix.dll 我使用的是旧的dll,因为我们必须访问的Informix数据库是古老的(版本7.something) 当通过VisualStudio在调试模式下运行时,它在我的机器(Windows 10)上可以完美地工作。 很好,我将把它部署到测试服务器(WindowsServer2012 R2) 第一次尝试 从VisualStudio直接部署

背景

访问Informix数据库的C#/.NET web应用程序。 客户端SDK在本地安装。
项目引用IBM SDK目录中的IBM.Data.Informix.dll 我使用的是旧的dll,因为我们必须访问的Informix数据库是古老的(版本7.something)

当通过VisualStudio在调试模式下运行时,它在我的机器(Windows 10)上可以完美地工作。 很好,我将把它部署到测试服务器(WindowsServer2012 R2)

第一次尝试

  • 从VisualStudio直接部署文件
  • 运行应用程序以访问数据库
  • 错误
第二次尝试

  • 已将dll复制到名为lib的项目文件夹
  • 已更改对此dll的项目引用
  • 部署
  • 与第一次尝试相同的错误
好的,我最好研究一下。参考资料见下文

第三次尝试

  • 删除了对sdk dll的引用
  • 从NuGet安装-Avatar Solucoes版本
  • 部署
  • 与第一次尝试相同的错误
更多研究

第四次尝试

  • 将gacutil文件复制到服务器,并将dll从第三次尝试安装到GAC
  • 部署
  • 新错误
更多研究

第五次尝试

  • 卸载的NuGet软件包
  • 从sdk引用的dll
  • 已将sdk.dll添加到服务器上的gac
  • 刷新的应用程序
  • 与第一次尝试相同的错误
更多研究

第六次尝试

  • 从NuGet安装-再次使用Avatar Solucoes版本
  • 向服务器上的gac添加了相同的dll
  • 已在服务器上创建新文件夹C:\informix
  • 已将iclit09b.dll从ibm sdk复制到此文件夹
  • 已将文件夹添加到路径
  • 重新启动IIS
  • 部署
  • 错误与第四次尝试相同
更多研究

第七次尝试

  • 已将iclit09b.dll复制到部署的bin文件夹
  • 部署
  • 错误与第四次尝试相同
更多研究

我发现了这段不祥的话

重要提示:IBM Informix ADO.Net驱动程序不是独立于安装在安装的/bin目录中的IBM.Data.Informix.dll文件中的。显然,它使用了SDK安装的一些其他客户端代码这意味着您必须在将使用ADO.Net驱动程序的任何计算机上安装Informix客户端SDK。您不能只在发行版中包含IBM.Data.Informix.dll。对于某些应用程序来说,这可能是一个严重的限制。您还需要通过SDK设置(SetNet32)来定义Informix数据源

我们真的需要在生产服务器上安装SDK吗?必须在GAC中安装DLL吗? 如果是这样,人们如何部署到他们无法控制的服务器上

您可能知道,我对Informix和.NET没有太多经验

我真的不知道下一步该怎么办

如有任何建议,我们将不胜感激

无特定顺序的引用

更新2019-01-25

根据@Satyan的回答,我卸载了SDK的所有早期版本,并清除了GAC

第八次尝试

  • 我安装了最新的SDK
  • 我引用了IBM.Data.Informix.dll的net40版本
  • 我将此版本添加到GAC
  • 在我的本地机器上,我得到了与第一次尝试相同的错误
第九次尝试

  • 我引用了IBM.Data.Informix.dll的net20版本
  • 我将此版本添加到GAC
  • 在我的本地机器上,我得到了与第一次尝试相同的错误
第十次尝试

幸运的是,我仍然有一个旧的IBM.Data.Informix.dll的副本

  • 我引用了IBM.Data.Informix.dll的旧版本
  • 我将此版本添加到GAC
  • 在我的本地机器上,我可以再次成功运行该程序。呸
  • 我部署到服务器
  • 获得与第四次尝试相同的错误
更多研究

找到这些物品

这表明决议是正确的

将INFORMIXDIR和PATH设置为系统环境变量,然后跳转Microsoft Internet Information Server或整个计算机,并再次尝试运行ASP应用程序

第十一次尝试

  • 添加了新的INFORMIXDIR系统环境变量
  • 重新启动IIS
  • 尝试应用程序
  • 没有。仍然会得到与第四次尝试相同的错误
在我的研究中,我发现了对“Informix Connect”的引用,据说它被用来安装客户端产品 在SDK下载的client_install.pdf中,它引用了installconnect.exe,但我下载的SDK中不存在该exe。 如果是单独下载到SDK,那么我找不到它

更新2019-02-08

决定再试试这个

第十二次尝试

  • 将informix目录添加到更靠近环境路径开始的位置
  • 重新启动IIS
  • 新错误
啊哈!一个新的错误,我有进展了

第十三次尝试

  • 已将C:\Program Files\Informix Client SDK 4.10.FC9\msg文件夹复制到服务器上的Informix文件夹
  • 将IIS_IUSR添加到informix文件夹
  • 重新启动IIS
  • 与第十二次尝试相同的错误
我还尝试将en_us文件夹复制到informix文件夹中-不

Mo
Could not load file or assembly 'IBM.Data.Informix, Version=3.0.0.2, Culture=neutral, PublicKeyToken=7c307b91aa13d208' or one of its dependencies. 
The system cannot find the file specified.
The type initializer for 'IBM.Data.Informix.IfxConnection' threw an exception.
Unable to load DLL 'iclit09b.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) 
SQL0035N The file "en_us\IBM.Data.Informix.xml" cannot be opened. 
at IBM.Data.Utilities.IfxResource..ctor(CultureInfo cultureInfo, String dirName, String fileName, String szMsgPath, String xpath)
   at IBM.Data.Utilities.IfxResources.GetResource(CultureInfo cultureInfo, String xpath)
   at IBM.Data.Informix.IfxException.get_Message()
Could not load file or assembly 'IBM.Data.Informix, Version=3.0.0.2, Culture=neutral, PublicKeyToken=7c307b91aa13d208' or one of its dependencies. 
The system cannot find the file specified.
cd INFORMIXDIR\bin\netf40
gacutil /u IBM.Data.Informix
gacutil /i IBM.Data.Informix.dll