none
TFS IIS Web Deploy 识别中文问题 RRS feed

  • 问题

  • 2018-07-03T12:02:05.5928028Z ##[section]启动: API_Master_Site
    2018-07-03T12:02:05.6240534Z ==============================================================================
    2018-07-03T12:02:05.6240534Z Task         : WinRM - IIS Web App Deployment
    2018-07-03T12:02:05.6240534Z Description  : Connect via WinRM, to deploy Web project locally on IIS, using Web Deploy
    2018-07-03T12:02:05.6240534Z Version      : 1.4.4
    2018-07-03T12:02:05.6240534Z Author       : Microsoft Corporation
    2018-07-03T12:02:05.6240534Z Help         : [More Information](http://aka.ms/IISWebDeploy)
    2018-07-03T12:02:05.6240534Z ==============================================================================
    2018-07-03T12:02:05.7021797Z 正在准备任务执行处理程序。
    2018-07-03T12:02:06.5459815Z Executing the powershell script: D:\tfsAgent-Test03\_work\_tasks\IISWebAppDeploy_50acc50f-7d15-470b-83c1-578b3f3eeba2\1.4.4\Main.ps1
    2018-07-03T12:02:06.9053347Z Starting deployment of IIS Web Deploy Package : \\TFS-AGENT\tfsAgent-TestBuildResult\build\Build_Test\20180703.2\drop\Api.Master.zip
    2018-07-03T12:02:06.9053347Z 
    2018-07-03T12:02:06.9053347Z 
    2018-07-03T12:02:07.0928971Z Performing deployment in parallel on all the machines.
    2018-07-03T12:02:07.0928971Z 
    2018-07-03T12:02:07.0928971Z 
    2018-07-03T12:02:07.1084971Z Deployment started for machine: cloud-report-f1 with port 5985.
    2018-07-03T12:02:07.1084971Z 
    2018-07-03T12:02:07.1084971Z 
    2018-07-03T12:02:17.9063238Z Deployment status for machine cloud-report-f1 : Failed
    2018-07-03T12:02:17.9063238Z 
    2018-07-03T12:02:17.9063238Z 
    2018-07-03T12:02:17.9219531Z Deployment failed on machine cloud-report-f1 with following message : System.Exception: 无法将值“System.Object[]”转换为类型“System.Xml.XmlDocument”。错误:““Initial”是一个意外标记。应为空格。 第 7 行,位置 156。”
    2018-07-03T12:02:17.9219531Z 
    2018-07-03T12:02:17.9219531Z 
    2018-07-03T12:02:17.9844545Z ##[error]”转换为类型“System.Xml.XmlDocument”。错误:““Initial”是一个意外标记。应为空格。 第 7 行,位置 156。”"}};]
    2018-07-03T12:02:17.9844545Z 
    2018-07-03T12:02:17.9844545Z 
    2018-07-03T12:02:18.0000520Z ##[error]Microsoft.PowerShell.Commands.WriteErrorException: Deployment on one or more machines failed. System.Exception: 无法将值“System.Object[]”转换为类型“System.Xml.XmlDocument”。错误:““Initial”是一个意外标记。应为空格。 第 7 行,位置 156。”
    2018-07-03T12:02:18.0000520Z For more info please refer to http://aka.ms/iisextnreadme
    2018-07-03T12:02:18.0312968Z ##[error]PowerShell 脚本已完成,收到 1 个错误。
    2018-07-03T12:02:18.0312968Z ##[section]完成: API_Master_Site

    =====================================================

    上面问题主要原因是Build出来的zip文件中有个parameters.xml的文件,该文件中有个element如下:

    <parameter name="PortalEntities-Web.config Connection String" description="PortalEntities 由应用程序在 web.config 中用来访问数据库的连接字符串。" defaultValue="Initial Catalog=**;Data Source=**;User ID=**;Pwd=**;" tags="SqlConnectionString">

    问题就出在description属性值中有中文。将这个属性及其值移除掉,上面控制台中报的错误即可消失,且能正常部署。现在问题是每次部署都得手动先修改下这个xml文件,无法实现自动化。

    我尝试过将TFS Build代理服务器改成英文版,上面的description属性值也就变成了英文,上面控制台中报的错误即可消失,且能正常部署,但编译出来的DLL文件放到系统中运行,系统中中文文字即变成了乱码。

    希望有人能帮忙是否可以在Build时不在parameters.xml文件中添加description属性,或在deploy时支持识别中文?

    2018年7月3日 12:46