【问题标题】:EmguCV Exception when published on IIS在 IIS 上发布时出现 EmguCV 异常
【发布时间】:2017-12-01 08:45:24
【问题描述】:

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

出现以下异常: 'Emgu.CV.CvInvoke' 的类型初始化程序引发了异常。 StackTrace:在 Emgu.CV.CvInvoke.cvCreateImageHeader(大小大小,IPL_DEPTH 深度,Int32 通道)在 Emgu.CV.Image2.AllocateData(Int32 rows, Int32 cols, Int32 numberOfChannels) at Emgu.CV.Image2.set_Bitmap(位图值)在 CustomerserviceWizard.ImageHelper.DecodeUrl(LuminanceSource 源,位图位图,列表`1 个方法)在 :line 213

感谢任何帮助。

【问题讨论】:

    标签: c# asp.net opencv iis emgucv


    【解决方案1】:

    当我尝试在 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 桌面体验 解决了这个问题,因为默认情况下微软从未在 Windows Server 上启用该功能。


    解决方案

    对于 Windows Server 2008

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

    对于 Windows Server 2012

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

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

    链接 - Solution from GitHub & Description with screenshot

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 不幸的是,这没有帮助。不过还是谢谢你的回复。您还有其他想法吗?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多