Angular 14 + .NET Core 6 WebAPI部署IIS遇问题求助
问题解答
关于Angular构建输出目录的合理性
你的想法有一定道理,但更规范的实践是:
- 不建议直接将Angular构建产物放到
API/bin/Release/Net6.0目录,这个目录是.NET编译后的临时输出目录,每次重新编译发布时大概率会被清空覆盖,稳定性不足。 - 更合适的做法是在Angular项目的
angular.json中,将outputPath设置为../API/wwwroot,让wwwroot处于API项目的顶级目录。接着在.NET Core项目的Program.cs中配置静态文件中间件:
这样在发布.NET项目时,Visual Studio会自动将wwwroot目录的内容包含进发布包,最终部署到IIS时,wwwroot会被放置在站点的部署目录下,而非直接嵌套在bin目录中。app.UseStaticFiles(); // 默认读取wwwroot目录下的静态资源
解决VS2019发布到IIS的连接失败问题
出现「无法连接:服务URL不能为空」是因为Web Deploy需要明确的服务地址,按以下步骤调整设置:
- 确认Web Deploy服务状态:打开Windows服务列表,找到「Web Deployment Agent Service」(或「Microsoft Web Deploy V3」),确保服务处于运行状态。
- 填写服务URL:在发布设置的「服务URL」栏中填入
https://localhost:8172/msdeploy.axd(Web Deploy默认服务地址),若使用HTTP协议可填http://localhost:8172/msdeploy.axd,优先推荐HTTPS。 - 配置验证身份:在「用户名」「密码」栏填入本地管理员账号(或拥有IIS部署权限的账号),Web Deploy需要对应权限才能操作IIS站点。
- 选择Web Deploy类型:
- 选「Web Deploy」是直接部署到IIS服务器,适合日常持续部署场景;
- 选「Web Deploy包」会生成一个
.zip部署包,可手动上传到服务器完成部署,适合离线部署需求,按需选择即可。
- 目标URL的作用:这个字段是部署完成后站点的访问地址,比如
http://localhost/TUtil,填不填都不影响连接验证,可根据需要补充。
完成以上设置后再点击「验证连接」,即可解决连接失败问题。
内容的提问来源于stack exchange,提问作者Chuck Duncan
相关产品推荐
相关产品推荐

