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

ASP.NET MVC部署后Ajax POST出现500内部服务器错误求助

解决ASP.NET MVC部署后Ajax POST登录500错误的方案

以下是针对部署后出现POST https://example.com/login-testing 500 (Internal Server Error)的排查和解决步骤:

1. 修正模型绑定配置

前端通过JSON.stringify传递JSON格式数据并设置contentType: 'application/json',但控制器方法未指定从请求体绑定模型,会导致LoginViewModel无法接收数据,进而引发空引用异常。修改控制器代码:

[Route("login-testing")]
[HttpPost] // 明确限定仅接受POST请求
public JsonResult LoginTesting([FromBody] LoginViewModel smodel)
{
    // 原有逻辑保持不变
}

2. 检查Session启用状态

服务器端可能未启用Session,导致设置Session时抛出异常。打开Web.config确认Session配置:

<system.web>
  <sessionState mode="InProc" timeout="20" />
  <!-- 确保mode值不是"Off" -->
</system.web>

3. 验证BCrypt依赖部署完整性

本地开发时安装的BCrypt.Net包需同步部署到服务器,检查服务器站点bin目录下是否存在BCrypt.Net.dll(对应版本程序集)。若缺失,重新部署项目时确保所有NuGet依赖被复制到输出目录。

4. 核对数据库连接字符串

服务器端数据库连接字符串可能与本地不一致,导致数据库操作失败。检查Web.config中的连接字符串:

<connectionStrings>
  <add name="YourConnectionName" connectionString="Server=服务器地址;Database=数据库名;Uid=账号;Pwd=密码;" providerName="System.Data.SqlClient" />
</connectionStrings>

确认服务器地址、账号密码、数据库名正确,且数据库服务器允许当前服务器IP访问。

5. 查看详细错误日志

开启服务器详细错误输出,定位具体异常:

修改Web.config的<system.web>节点:

<system.web>
  <customErrors mode="Off" />
</system.web>

重新发起请求,服务器会返回详细错误堆栈信息,直接定位问题代码行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 10:00:53