如果我在本地IIS上调试或运行它,我的ASP.NET应用程序工作正常。但是如果我将它发布到IIS上,看起来EmguCV就会失去它所需要的dll。我的VS项目的bin文件夹和IIS上的bin文件夹是相同的。
发生以下异常:
' Emgu.CV.CvInvoke'的类型初始值设定项抛出一个例外。
StackTrace:在Emgu.CV.CV.CvInvoke.cvCreateImageHeader(大小,IPL_DEPTH深度,Int32通道)的Emgu.CV.Image 2.AllocateData(Int32 rows, Int32 cols, Int32 numberOfChannels) at Emgu.CV.Image
2.set_Bitmap(Bitmap value)at CustomerserviceWizard.ImageHelper.DecodeUrl(LuminanceSource source,Bitmap bitmap) ,List`1方法)in:第213行
感谢任何帮助。
答案 0 :(得分:2)
好吧,经过大量的研究和白发后,我终于说服我的老板只使用台式电脑用EmguCV处理图像。 这个例外的(非常明显的)原因是服务器中缺少nVidia Cuda GPU。
答案 1 :(得分:2)
当我尝试在IIS上执行EmguCV时显示错误-Unable to load DLL 'cvextern': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
例外-The type initializer for 'Emgu.CV.CvInvoke' threw an exception
。
就我而言,我通过为Windows服务器(在我的情况下为Windows Server 2012 R2)启用 UI桌面体验解决了此问题,因为Microsoft从未默认在Windows Server上启用该功能。
解决方案
对于 Windows Server 2008
对于 Windows Server 2012
希望此解决方案可以为您提供帮助:)
答案 2 :(得分:1)
我曾经遇到类似的问题,也许这有助于您的情况:请检查您的IIS应用程序池设置,并确保在“高级设置”下启用32位应用程序。