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

部署ASP.NET Core 2.0.6至IIS7.5后Admin路由访问异常求助

解决ASP.NET Core 2.0.6访问Admin路由时的ApplicationInsights服务异常

嘿,这个问题我之前帮朋友排查过,本质就是你的ASP.NET Core服务容器里没注册ApplicationInsights的JavaScriptSnippet服务,导致Admin路由对应的页面尝试调用这个服务时直接抛异常了。给你几个具体的解决步骤,按顺序来:

  • 检查并安装兼容的ApplicationInsights NuGet包:打开你的项目,确认已经安装了Microsoft.ApplicationInsights.AspNetCore包,版本要和ASP.NET Core 2.0.6兼容(建议选2.x系列的稳定版本,比如2.4.0)。如果没装,直接用NuGet包管理器安装,或者在Package Manager Console里执行命令:

    Install-Package Microsoft.ApplicationInsights.AspNetCore -Version 2.4.0
    
  • 在Startup.cs中正确注册ApplicationInsights服务:找到ConfigureServices方法,添加ApplicationInsights的服务注册代码,确保它在其他依赖该服务的配置之前执行:

    public void ConfigureServices(IServiceCollection services)
    {
        // 注册ApplicationInsights核心服务,这会自动包含JavaScriptSnippet的注册
        services.AddApplicationInsightsTelemetry(Configuration);
        
        // 其他服务注册,比如MVC等
        services.AddMvc();
    }
    

    如果已经加了上面的代码但还是报错,可以尝试显式注册JavaScriptSnippet服务:

    services.AddSingleton<Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet>();
    
  • 检查Admin视图的代码依赖:打开Admin区域的Dashboard视图(比如Views/Home/Dashboard.cshtml),如果里面有类似@inject Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet snippet的注入代码,那必须确保上面的服务注册已经完成,这样视图才能正确获取到服务实例。

  • 验证发布文件的完整性:登录到IIS 7.5服务器,找到你的项目发布目录,检查是否存在Microsoft.ApplicationInsights.AspNetCore.dll、Microsoft.ApplicationInsights.dll等相关程序集。如果缺失,重新发布项目,发布时选择“包含所有项目引用的依赖项”,确保所有必要的文件都被部署到服务器。

  • 确认IIS应用池的配置正确性:确保你的应用池设置符合ASP.NET Core的要求:

    • 托管管道模式选择“集成”
    • .NET CLR版本设置为“无托管代码”(因为ASP.NET Core是自托管运行的)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:16:07