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

Aspx应用Ajax调用WebMethod时Newtonsoft.Json程序集加载失败求助

解决Newtonsoft.Json版本不匹配的问题

这种版本不匹配的坑我踩过好多次,光卸载重装NuGet包确实不一定能搞定,试试下面这几个步骤,大概率能解决:

  • 检查并添加绑定重定向
    打开项目的web.config文件,找到configuration节点下的runtime→assemblyBinding(如果没有就手动创建),添加针对Newtonsoft.Json的版本重定向规则,把所有旧版本请求都指向你当前安装的版本。比如你现在装的是13.0.0.0,配置如下:

    <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
          <bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
        </dependentAssembly>
      </assemblyBinding>
    </runtime>
    

    注意把newVersion改成你实际安装的版本号。

  • 确认项目引用的版本正确性
    右键你的ASPX项目→选择「引用」,找到Newtonsoft.Json,右键查看「属性」,确认「版本」字段和你NuGet包安装的版本一致。如果不一致,先删除这个引用,然后重新通过NuGet安装对应版本的包。

  • 清理缓存并重启VS
    先点击菜单栏的「生成」→「清理解决方案」,然后手动删除项目目录下的bin和obj文件夹,接着重启Visual Studio,再重新生成项目。这一步能清除残留的旧版本dll缓存,很多时候就是缓存搞的鬼。

  • 检查发布环境的dll版本
    如果是发布到服务器后出现的问题,登录服务器找到应用的bin文件夹,查看Newtonsoft.Json.dll的版本号(右键→属性→详细信息),如果和你本地项目的版本不一致,手动替换成正确版本的dll文件,同时确保服务器上没有其他地方残留旧版本的dll。

  • 统一解决方案内的包版本
    如果你的解决方案里有多个项目,要确保所有项目都安装了相同版本的Newtonsoft.Json NuGet包。可以右键解决方案→「管理NuGet程序包」,在「已安装」标签下统一更新所有项目的版本,避免跨项目引用导致的版本冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:22:14