在IIS上发布时出现EmguCVexception

如果我在本地IIS上调试或运行它,我的ASP.NET应用程序工作正常。 但是如果我将它发布到IIS上,看起来EmguCV就会失去它所需要的dll。 我的VS项目的bin文件夹和IIS上的bin文件夹是相同的。

发生以下exception:’Emgu.CV.CvInvoke’的类型初始值设定项引发exception。 StackTrace:位于Emgu.CV.Image的Emgu.CV.CvInvoke.cvCreateImageHeader(大小,IPL_DEPTH深度,Int32通道) 2.AllocateData(Int32 rows, Int32 cols, Int32 numberOfChannels) at Emgu.CV.Image 2.set_Bitmap(位图)来自CustomerserviceWizard.ImageHelper.DecodeUrl(LuminanceSource source,Bitmap bitmap,List`1方法)in:line 213

任何帮助表示赞赏。

好吧,经过大量研究和白发后,我终于说服我的老板只使用台式电脑处理EmguCV图像。 这个例外的(非常明显的)原因是服务器中缺少nVidia Cuda GPU。

我曾经有类似的问题,也许这有助于您的情况:请检查您的IIS应用程序池设置,并确保在“高级设置”下启用32位应用程序。

我尝试在IIS上执行EmguCV时显示错误 – Unable to load DLL 'cvextern': The specified module could not be found. (Exception from HRESULT: 0x8007007E) Unable to load DLL 'cvextern': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

exception – The type initializer for 'Emgu.CV.CvInvoke' threw an exception

就我而言,我通过启用Windows服务器的UI桌面体验 (在我的情况下 – Windows Server 2012 R2)解决了这个问题,因为Microsoft默认情况下从未在Windows Server上启用该function。


对于Windows Server 2008

  1. 转到开始>>管理工具>>服务器管理器。
  2. 在左侧窗格中,单击“function”。在“function摘要”部分下,单击“添加function”。
  3. 在“选择function”页面上,选中“桌面体验”复选框。
  4. 查看需要安装的必需function,然后单击“添加必需function”,单击“下一步”。
  5. 在“确认安装选择”页面上,确保已安装桌面体验function,单击“安装”。
  6. 在“安装结果”页面上,系统将要求您重新启动服务器以完成安装过程。
  7. 只需单击“关闭”,然后单击“是”以重新启动服务器。
  8. 服务器重新启动后,登录到服务器,服务器将完成剩余的安装步骤。

对于Windows Server 2012

  1. 转到开始>>管理工具>>服务器管理器。
  2. 在服务器管理器中,单击“function”。
  3. 在服务器管理器详细信息窗格的“function摘要”下,单击“添加function”
  4. 这将启动“添加function向导”。
  5. 现在,在“function”列表中,选择“桌面体验”,然后单击“安装”。

希望这个解决方案可以帮到你:)

链接 – 来自GitHub和屏幕截图的 解决方案