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

Visual Studio发布至Azure时跳过目录及API 404问题求助

问题解决指南

问题1:发布时Classes、Controllers和App_Start目录未推送至Azure App Service

这类问题通常源于项目文件配置或发布设置遗漏,按以下步骤排查修复:

  • 确认项目文件包含目标文件:右键项目→编辑项目文件,检查Classes、Controllers、App_Start目录下的.cs文件是否存在<Compile>节点,示例:
    <Compile Include="App_Start\RouteConfig.cs" />
    <Compile Include="Controllers\ApiValuesController.cs" />
    
    若缺失,可右键对应文件→「包含在项目中」自动添加。
  • 设置文件发布属性:选中目标目录下的所有.cs文件,右键→属性,将复制到输出目录设置为「如果较新则复制」,确保发布时相关编译依赖被打包。
  • 检查发布配置:在Visual Studio发布向导的「设置」页面,展开「文件发布选项」,取消勾选「排除未使用的文件」;切换到「预览」页面,确认必要的输出文件(如bin目录下的dll)已被包含。

问题2:手动上传目录后API接口返回404

手动上传源码目录无法解决问题,Azure App Service不会编译源码,需确保Web API与OWIN配置正确生效,步骤如下:

  1. 注册WebApiConfig路由
    在Global.asax的Application_Start方法中添加Web API路由注册(需优先于MVC路由注册,避免冲突):

    protected void Application_Start(object sender, EventArgs e)
    {
        // 先初始化Web API路由
        GlobalConfiguration.Configure(WebApiConfig.Register);
        // 再初始化MVC路由
        RouteConfig.RegisterRoutes(RouteTable.Routes);
    }
    
  2. 检查OWIN启动配置

    • 确认Startup.cs的[assembly: OwinStartup(typeof(App_Start.Startup))]特性无拼写错误,确保OWIN能正确找到启动类。
    • 若测试时使用HTTP访问,取消OAuthAuthorizationServerOptions中AllowInsecureHttp = true的注释(生产环境建议关闭)。
    • 验证ApiAuthProvider类是否正确继承OAuthAuthorizationServerProvider,并实现了ValidateClientAuthentication、GrantResourceOwnerCredentials等必要方法,无编译错误。
  3. 验证Azure环境配置

    • 在Azure门户的App Service→「配置」→「常规设置」,确认.NET版本与本地开发环境一致(如.NET Framework 4.7.2)。
    • 查看日志流:在「监控」→「日志流」中查看启动错误或路由注册失败信息,定位具体问题。
  4. 重新正确发布项目
    放弃手动上传源码,通过Visual Studio重新发布:选择「Web Deploy」方式,发布后检查Azure的site\wwwroot\bin目录下是否存在项目编译后的dll文件,确保所有配置逻辑已嵌入编译产物。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 15:10:22