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

Blazor Server搭建Identity脚手架后遇ANCM 500.35进程内应用冲突错误求助

解决Blazor Server Identity脚手架后登录出现ANCM 500.35错误的方案

这个错误本质是因为同一IIS应用池里不能同时运行多个进程内托管的ASP.NET Core应用——你的Blazor Server主应用默认是进程内托管,而脚手架生成的Identity区域被识别成了另一个进程内应用,两者冲突导致的。下面是几个可行的解决办法:

方法一:将整个项目改为进程外托管

这是最省心的方案,直接让整个应用(包括Identity区域)以进程外模式运行,避免同一池内的冲突:

  1. 打开你的Blazor Server项目的.csproj文件
  2. 找到<AspNetCoreHostingModel>配置项,如果当前值是InProcess,改成OutOfProcess
  3. 保存文件后,重新发布项目或者重启IIS应用池

方法二:为Identity区域单独分配应用程序池

如果不想改变主应用的托管模式,可以给Identity区域单独建一个应用池:

  1. 打开IIS管理器,找到你的Blazor Server站点
  2. 找到站点下的Identity虚拟目录,右键选择转换为应用程序
  3. 在弹出的对话框中,点击“选择”按钮,新建一个应用程序池(比如命名为BlazorIdentityPool),注意把.NET CLR版本设置为无托管代码(ASP.NET Core应用不需要传统托管)
  4. 确认设置后,把Identity应用绑定到这个新的应用池里,重启两个应用池即可

方法三:排查项目配置冲突

有时候脚手架生成的代码可能和主应用的配置有冲突,你可以检查这几点:

  • 打开Program.cs(或者Startup.cs,取决于你用的.NET版本),确认Identity服务只注册了一次,没有重复添加AddIdentity或AddDefaultIdentity的代码
  • 检查脚手架生成的_LoginPartial.cshtml等视图文件,确保里面的路由路径正确,没有指向错误的地址

额外故障排查技巧

如果上面的方法还没解决,可以用这些方式深挖问题:

  • 查看系统事件日志:打开Windows事件查看器,定位到「Windows日志」→「应用程序」,找到ASP.NET Core相关的错误条目,里面会有更具体的错误细节
  • 启用stdout日志:在项目的web.config里,找到<aspNetCore>节点,添加配置:
    <aspNetCore processPath="dotnet" arguments=".\YourApp.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="InProcess" />
    
    重启应用后,查看logs目录下的日志文件,能看到应用运行时的输出信息,帮助定位问题
  • 附加调试器:开发环境下,在Visual Studio里选择「调试」→「附加到进程」,找到你的应用进程(通常是dotnet.exe或者w3wp.exe),在登录相关的代码处设置断点,跟踪执行流程找到错误点

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:05:35