You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET 4.8中WebP-wrapper的DLL文件加载失败问题求助

解决ASP.NET 4.8中WebP-wrapper无法加载libwebp.dll的问题

排查与修复步骤

1. 确保DLL被正确复制到运行目录

  • 右键项目中的libwebp_x64.dll和libwebp_x86.dll,打开属性面板
  • 将复制到输出目录设置为始终复制,保证编译时DLL能同步到当前编译配置的bin目录(比如bin\Debug或bin\Release),而非仅手动放置

2. 手动指定DLL加载路径

在WebPWrapper的VB代码中,添加手动加载逻辑,明确告诉系统从项目bin目录读取对应位数的DLL:

Public Class WebP
    Public Sub New()
        Dim basePath As String = HttpContext.Current.Server.MapPath("~/bin")
        Dim targetDll As String = If(IntPtr.Size = 8, "libwebp_x64.dll", "libwebp_x86.dll")
        Dim fullDllPath As String = Path.Combine(basePath, targetDll)
        
        LoadLibrary(fullDllPath)
    End Sub

    <DllImport("kernel32.dll", SetLastError:=True, CharSet:=CharSet.Unicode)>
    Private Shared Function LoadLibrary(lpFileName As String) As IntPtr
    End Function

    ' 原WebPWrapper的其他方法...
End Class

3. 匹配应用程序池的位数设置

  • 联系服务器管理员,检查当前应用程序池的高级设置
  • 将启用32位应用程序设为对应值:32位环境设为True,64位环境设为False,确保与加载的DLL位数一致

4. 检查DLL依赖组件

libwebp.dll依赖VC运行库,若服务器缺失对应版本的VC Redistributable包(需匹配32/64位),也会触发找不到模块的错误。请管理员用Dependency Walker工具检查DLL依赖,并安装缺失的运行库。

5. 确认App_Code目录的编译有效性

确保翻译后的代码文件后缀为.vb(而非.cs),ASP.NET会自动编译App_Code目录下的VB文件,若后缀错误会导致代码无法生效。查看项目编译日志,确认无编译报错。


内容的提问来源于stack exchange,提问作者esims

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 17:05:28