IIS 7 Web Deploy无法处理创建子文件夹?

时间:2011-10-27 09:22:53

标签: iis-7 msdeploy virtual-directory microsoft-web-deploy

在过去的几天里,我正在尝试将我的软件包部署到IIS 7,但我无处可去。 每当我尝试发布包时,我都会收到一条错误消息,指出目标文件夹不存在 - 但实际上它是在远程服务器上创建的但是为空(只是文件夹结构):/

我正在使用以下命令构建我的包:

msbuild.exe /t:CreateWebPackages /toolsversion:4.0 CRM.msbuild

并尝试使用以下方式部署它:

CRM.cmd /M:server /Y

结果是:

    C:\...WebService.deploy.cmd /M:crm-web /y
    =========================================================
    SetParameters from:
    "C:...WebService.SetParameters.xml"
    You can change IIS Application Name, Physical path, connectionString
    or other deploy parameters in the above file.
    -------------------------------------------------------
     Start executing msdeploy.exe
    -------------------------------------------------------
     "C:\Program Files\IIS\Microsoft Web Deploy\\msdeploy.exe" 
-source:package='C:...WebService.zip' -dest:auto,computerName='crm-w
    eb-new',includeAcls='False' -verb:sync -disableLink:AppPoolExtension -disableLin
    k:ContentExtension -disableLink:CertificateExtension 
-setParamFile:"C:...WebService.SetParameters.xml"
    Info: Adding sitemanifest (sitemanifest).
    Info: Updating createApp (Kruk CRM Web Service/2.0.65000.65000).
    Info: Adding contentPath (Kruk CRM Web Service/2.0.65000.65000).
    Info: Adding dirPath (Kruk CRM Web Service/2.0.65000.65000).
    Info: Adding child dirPath (Kruk CRM Web Service/2.0.65000.65000\bin).
    Info: Adding setAcl (Kruk CRM Web Service/2.0.65000.65000).
    Error: (2011-10-27 11:07:59) An error occurred when the request was processed on
     the remote computer.
    Error: Could not find file '\\?\C:\inetpub\wwwroot\CRM\2.0.65000.65000'.
    Error count: 1.

但是当我编辑SetParameters.xml文件并更改

<setParameter name="IIS Web Application Name" value="Web Service/2.0.65000.65000" />

<setParameter name="IIS Web Application Name" value="Web Service" />

它有效! 那么为了在网站下创建新的目录,我需要做一些神奇的技巧吗?

1 个答案:

答案 0 :(得分:0)

发现它!在尝试了几乎所有可用的msbuild,msdeploy,项目设置,IIS等选项之后,我注意到msdeploy无法在站点的应用程序池下创建我的应用程序,因为显然它的身份没有足够的权限来执行此操作。

诀窍是将网站池的身份更改为本地系统。