使用Web Deploy和ACL进行部署时出现问题

| 我正在使用Web Deploy将Web应用程序部署到主机上。使用发布命令从Visual Studio运行时,它可以正常工作。当我尝试使用MSBuild中的Web部署进行部署时,无法访问该网站,甚至我的Web主机的Web控制面板也无法再访问该网站。我已经将其追溯到我认为是网站文件夹的权限。 从Visual Studio发布会更新ACL,并且网站可以正常工作,并且Web主机的控制面板也可以工作(即使它是通过MSBuild之前的部署破坏的)。 以下是从Visual Studio运行时的输出:
------ Publish started: Project: mywebapp, Configuration: Release Any CPU ------
Transformed Web.config using Web.Release.config into obj\\Release\\TransformWebConfig\\transformed\\Web.config.
Auto ConnectionString Transformed Views\\Web.config into obj\\Release\\CSAutoParameterize\\transformed\\Views\\Web.config.
Auto ConnectionString Transformed obj\\Release\\TransformWebConfig\\transformed\\Web.config into obj\\Release\\CSAutoParameterize\\transformed\\Web.config.
Copying all files to temporary location below for package/publish:
obj\\Release\\Package\\PackageTmp.
Start Web Deploy Publish the Application/package to https://myhost.net:8172/MsDeploy.axd?site=mywebapp.com ...
Updating setAcl (mywebapp.com).
Updating setAcl (mywebapp.com).
Updating filePath (mywebapp.com\\bin\\mywebapp.Core.dll).
Updating filePath (mywebapp.com\\bin\\mywebapp.Core.pdb).
Updating filePath (mywebapp.com\\bin\\mywebapp.dll).
Updating filePath (mywebapp.com\\bin\\mywebapp.pdb).
Updating filePath (mywebapp.com\\Views\\Web.config).
Updating filePath (mywebapp.com\\web.config).
Updating setAcl (mywebapp.com).
Updating setAcl (mywebapp.com).
Publish is successfully deployed.
========== Build: 2 succeeded or up-to-date, 0 failed, 0 skipped ==========
========== Publish: 1 succeeded, 0 failed, 0 skipped ==========
我发现我认为Visual Studio在部署期间正在使用的文件包含ACL信息。它名为myapp.SourceManifest.xml,位于C:\\ Projects \\ mywebapp \\ obj \\ Release \\ Package文件夹中。
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<sitemanifest>
  <contentPath path=\"C:\\Projects\\mywebapp\\obj\\Release\\Package\\PackageTmp\" />
  <setAcl path=\"C:\\Projects\\mywebapp\\obj\\Release\\Package\\PackageTmp\" setAclResourceType=\"Directory\" />
  <setAcl path=\"C:\\Projects\\mywebapp\\obj\\Release\\Package\\PackageTmp\" setAclUser=\"anonymousAuthenticationUser\" setAclResourceType=\"Directory\" />
</sitemanifest>
我的MSBuild文件包含以下内容来执行部署:
<Exec Command=\'\"$(ProgramFiles)\\IIS\\Microsoft Web Deploy v2\\msdeploy.exe\" -verb:sync -source:package=\"mywebapp\\obj\\test\\package\\mywebapp.zip\" -dest:auto,computername=\"https://myhost.net:8172/MsDeploy.axd?site=mywebapp.com\",username=XXXX,password=XXXX,authtype=basic -allowuntrusted:true -setparam:name=\"IIS Web Application Name\",value=\"mywebapp.com\"\' />
当我运行MSBuild进行部署时,可以看到文件正在更新,但没有ACL被更新。 由于配置(测试而不是发布)不同,我的MSBuild部署来自不同的文件夹,并且mywebapp.SourceManifest.xml文件不同。
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<sitemanifest>
  <IisApp path=\"C:\\Projects\\mywebapp\\obj\\Test\\Package\\PackageTmp\" managedRuntimeVersion=\"v4.0\" />
</sitemanifest>
不同的mywebapp.SourceManifest.xml文件可能与此有关吗?我需要怎么做才能更新ACL? 更新资料 我发现mywebapp.SourceManifest.xml文件中的差异是由于我的测试配置的.csproj文件中存在以下内容引起的。
<IncludeSetAclProviderOnDestination>False</IncludeSetAclProviderOnDestination>
我将其更改为True,现在清单文件在“测试”和“发布”配置之间相同。 我还发现,当使用Visual Studio中的发布功能时,它适用于发布版本,但不适用于测试。因此,我现在试图找出导致成功或失败部署的两种配置之间的区别。     
已邀请:
        我设法使其工作。根据我的网络托管商的说法,Web Deploy存在一些问题,他们正在与Microsoft的Web Deploy&IIS团队一起工作,因此他们不得不在服务器上应用一些临时修复程序。奇怪,因为这一切在几个月前就可以正常工作了。 我最终在项目文件中恢复了“ 5”设置,以防止Web Deploy接触ACL。我的网络托管商说,它正在删除应用程序池标识的权限,并阻止网络控制面板访问网站文件夹。 他们还告诉我在项目文件中添加ѭ6。我添加了它,尽管我不确定它是否有所作为。     

要回复问题请先登录注册