Visual Studio发布到IIS及Web Deploy配置部署
1、官方教程
2、错误排查
如果是请求不通,检测配置项里的服务器、网站名、用记名、密码是否有误,特别是网站名,我遇到的基本都是这个问题。
如果使用IIS账号,请检查站点文件夹的Users用户组是否开通完全控制权限。
请检测IP端口是否加入防火墙及安全组,放行8172端口。
https://learn.microsoft.com/zh-cn/iis/publish/troubleshooting-web-deploy/web-deploy-error-codes
3、检查服务是否正常启动
net start wmsvc & net start msdepsvc
4、IISProfile.pubxml常用配置
<PropertyGroup> <!--设置环境--> <EnvironmentName>Staging</EnvironmentName> <!--使用不受信任的证书发布到服务器--> <AllowUntrustedCertificate>True</AllowUntrustedCertificate> <!--禁用默认setACL行为--> <IncludeSetACLProviderOnDestination>False</IncludeSetACLProviderOnDestination> </PropertyGroup> <ItemGroup> <!-- glob 模式匹配的文件夹和文件: **\*.config(例如,web.config) **\*.json(例如 appsettings.json) wwwroot\** --> <!--过滤文件,将从部署站点删除目标--> <Content Update="wwwroot/*" CopyToPublishDirectory="Never" /> <Content Update="appsettings.json" CopyToPublishDirectory="Never" /> <!--过滤目录,不会从部署站点删除目标--> <MsDeploySkipRules Include="CustomSkipFolder"> <ObjectName>dirPath</ObjectName> <AbsolutePath>wwwroot\\content</AbsolutePath> </MsDeploySkipRules> <!--过滤文件,不会从部署站点删除目标--> <MsDeploySkipRules Include="CustomSkipFile"> <ObjectName>filePath</ObjectName> <AbsolutePath>Views\\Home\\About1.cshtml</AbsolutePath> </MsDeploySkipRules> <MsDeploySkipRules Include="CustomSkipFile"> <ObjectName>filePath</ObjectName> <AbsolutePath>Views\\Home\\About2.cshtml</AbsolutePath> </MsDeploySkipRules> <!--包含文件,将项目之外的文件复制到部署站点--> <ResolvedFileToPublish Include="..\ReadMe2.md"> <RelativePath>wwwroot\ReadMe2.md</RelativePath> </ResolvedFileToPublish> <!--通过 Never 或 PreserveNewest 的内部文本包含 <CopyToPublishDirectory>覆盖默认行为--> <ResolvedFileToPublish Include="..\ReadMe2.md"> <RelativePath>wwwroot\ReadMe2.md</RelativePath> <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory> </ResolvedFileToPublish> </ItemGroup>