使用校验和时,Web部署任务失败

时间:2014-03-10 16:07:33

标签: visual-studio deployment web-deployment

当我尝试将项目发布到我的发布网络服务器时,Visual Studio Professional 2013 Update 1中出现以下错误。

  

错误2 Web部署任务失败。 ((2/27/2014 9:21:20 AM)在远程计算机上处​​理请求时发生错误。)

     

(2/27/2014 9:21:20 AM)在远程计算机上处​​理请求时发生错误。

     

未实施方法或操作。

     

at Microsoft.Web.Deployment.IncompleteParameterReplacementProvider.GetFilteredStream()

     

at Microsoft.Web.Deployment.DeploymentObjectProvider.get_Checksum()

     

at Microsoft.Web.Deployment.DeploymentSyncContext.SyncEquals(DeploymentObject destObject,DeploymentObject sourceObject,Boolean skipKey)

     

at Microsoft.Web.Deployment.DeploymentSyncContext.SyncDirPathChildren(DeploymentObject destRoot,DeploymentObject sourceRoot)

     

at Microsoft.Web.Deployment.DeploymentSyncContext.SyncDirPathChildren(DeploymentObject destRoot,DeploymentObject sourceRoot)

     

at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenNoOrder(DeploymentObject dest,DeploymentObject source)

     

at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenNoOrder(DeploymentObject dest,DeploymentObject source)

     

at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest,DeploymentObject source)

     

at Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destinationObject,DeploymentObject sourceObject)

     

at Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject,DeploymentSyncOptions syncOptions,PayloadTable payloadTable,ContentRootTable contentRootTable,Nullable'1 syncPassId,String syncSessionId)

     

at Microsoft.Web.Deployment.DeploymentAgent.HandleSync(DeploymentAgentAsyncData asyncData,Nullable1 passId)0 0 MyWebsiteProject

以下是一些背景信息。

  1. 发布用于在Release环境中成功,直到大约一个月前。那时我使用的是Visual Studio 2010.升级到VS 2013并没有解决问题。

  2. 在我的其他两个非发布环境中发布成功,请注意,其中一个与发布在同一个IIS / Windows服务器上。

  3. 发布使用校验和,使用“为给定项目中的每个配置文件设置这些属性”选项,如here所述。

  4. 如果我切换回文件时间戳选项,则在我的发布环境中发布成功。遗憾的是,时间戳不是一个好的解决方案,因为这个项目得到了多个开发人员使用版本控制软件的支持。

  5. 我目前正在通过手动将已更改的文件复制到发布服务器来解决此问题。

  6. 关于如何让Publish再次运作的任何想法?

    2014-03-19更新

    我试图通过在IIS中添加一个新网站来解决这个问题,目的是用一个新网站替换现有的,有问题的网站。第一次发布工作但第二次发布时返回了相同的旧错误。显然,问题出在正在部署的源代码中 - 可能是在仅在发布服务器上完成的Web.config XML转换中。

1 个答案:

答案 0 :(得分:0)

Publish再次在我的发布网络服务器上工作。以下是可能解决问题的步骤。 (免责声明:我好几周没试过发布了 - 我一直在手动部署 - 所以以前的一些未知更改可能会修复发布。)

  1. 使用Visual Studio的发布预览生成转换后的 Web.config (在我的计算机上的... \ obj \ Release \ TransformWebConfig \ transformed \ Web.config中的项目文件夹中找到)。
  2. 使用DIFF工具(我使用WinMerge)将发布预览 Web.config 与发布网络服务器的 Web.config 进行比较。
  3. 手动编辑我的 Web.config ,我的 Web.Release.config 和网络服务器的 Web.config ,以消除由DIFF工具。
  4. 重复步骤1到3,直到消除所有差异(甚至是空格)。
  5. 现在发布有效。