Visual Studio发布ASP.NET至Azure AppService异常缓慢求助
ASP.NET应用发布至Azure AppService速度骤降问题
自昨日起,将ASP.NET应用从Visual Studio发布到Azure AppService时出现异常:发布启动后,AppService已创建必要目录,但文件复制速度极慢,预估全程需4-5小时。而上周及之前发布同一未修改的应用仅需不到30秒。
环境信息
- AppService计划及AppService部署区域:德国中西部
- Visual Studio版本:17.4.2
已尝试删除并重建Azure资源,但问题未改善。
项目相关文件
.csproj文件
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>net6.0</TargetFramework> <ApplicationIcon /> <OutputType>Exe</OutputType> <StartupObject /> <Version>2.1.0.0</Version> </PropertyGroup> <ItemGroup> <Content Remove="C:\Users\dev\.nuget\packages\foolproof.core\1.1.10\contentFiles\any\net5.0\Scripts\mvcfoolproof.core.js" /> <Content Remove="C:\Users\dev\.nuget\packages\foolproof.core\1.1.10\contentFiles\any\net5.0\Scripts\mvcfoolproof.jquery.validation.js" /> <Content Remove="C:\Users\dev\.nuget\packages\foolproof.core\1.1.10\contentFiles\any\net5.0\Scripts\mvcfoolproof.msajax.validation.js" /> <Content Remove="C:\Users\dev\.nuget\packages\foolproof.core\1.1.10\contentFiles\any\net5.0\Scripts\mvcfoolproof.unobtrusive.js" /> </ItemGroup> <ItemGroup> <None Include="Views\Home\Index.cshtml" /> <None Include="Views\Home\Privacy.cshtml" /> </ItemGroup> <ItemGroup> <PackageReference Include="FoolProof.Core" Version="1.1.10" /> <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.10" /> <PackageReference Include="NLog" Version="5.0.1" /> <PackageReference Include="NLog.Database" Version="5.0.1" /> <PackageReference Include="NLog.Schema" Version="5.0.1" /> <PackageReference Include="NLog.Web.AspNetCore" Version="5.0.0" /> <PackageReference Include="System.Data.SqlClient" Version="4.8.3" /> <PackageReference Include="System.Management" Version="6.0.0" /> </ItemGroup> <ItemGroup> <Folder Include="wwwroot\lib\jqueryui\" /> </ItemGroup> <ItemGroup> <Reference Include="LicenseManager"> <HintPath>bin\LicenseManager.dll</HintPath> </Reference> <Reference Include="Newtonsoft.Json"> <HintPath>bin\Newtonsoft.Json.dll</HintPath> </Reference> </ItemGroup> </Project>
appsettings.json文件
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "*" }
文件夹结构

解决思路与排查步骤
1. 切换发布方式验证工具问题
放弃Visual Studio内置发布,改用Azure CLI部署:
- 先本地生成发布包:
dotnet publish -c Release - 再用CLI上传:
验证是否是Visual Studio发布工具本身的异常。az webapp deploy --resource-group <你的资源组名> --name <你的AppService名> --src-path ./bin/Release/net6.0/publish --type zip
2. 调整Visual Studio发布配置
- 打开发布配置文件(.pubxml),切换增量发布/完整发布模式:如果之前用增量,改成完整发布试试;反之则切换增量。
- 取消勾选“删除目标上的额外文件”选项,避免发布时遍历删除大量文件导致耗时。
3. 排查网络与Azure资源瓶颈
- 测试本地到德国中西部Azure区域的网络连通性,用
tracert或ping查看延迟和丢包率,必要时换网络环境(比如手机热点)测试。 - 临时升级AppService计划层级(比如从B1升到B2),排除资源配额不足导致的IO瓶颈,测试后再降级。
4. 清理项目冗余文件
- 在.csproj中添加配置,排除不必要的文件和目录:
<PropertyGroup> <ExcludeFoldersFromDeployment>bin;obj;Logs</ExcludeFoldersFromDeployment> <PublishTrimmed>true</PublishTrimmed> <!-- .NET 6+启用裁剪,减少发布体积 --> </PropertyGroup> - 检查
wwwroot目录下的静态资源,启用压缩后再发布。
5. 修复Visual Studio环境
- 打开Visual Studio Installer,安装Web发布工具的最新补丁。
- 执行
devenv /ResetSettings重置Visual Studio设置,排除配置异常。
6. 查看Azure部署日志
- 登录Azure门户,进入AppService的“诊断并解决问题”,查看部署相关日志,定位文件复制时的超时或错误环节。
- 启用AppService的“详细部署日志”,捕获发布过程的具体耗时节点。
内容的提问来源于stack exchange,提问作者N. M.
相关产品推荐
相关产品推荐

