dotnet发布出错了。无法找到/创建approot文件夹

时间:2016-06-23 17:08:48

标签: asp.net jenkins visual-studio-2015 .net-core

发布或部署脚本没有错误,但在部署完成后,导航到网站说:

  

指定的CGI应用程序遇到错误和服务器   终止了这个过程。

可能的原因是: 我在使用dnx发布命令时没有发生这种情况。 我从之前的控制台日志中验证了此警告是新的。

无法找到文件'D:\ TempPublish \ approot'。请访问:http://go.microsoft.com/fwlink/?LinkId=221672#FileOrFolderNotFound了解详情。 信息:使用ID'8zsdwee ------------ b7a299fe6'连接到远程服务器。 警告:由于规则SkipInvalidSource而跳过源contentPathLib(D:\ TempPublish \ approot)。 找不到文件'D:\ TempPublish \ approot'。请访问:http://go.microsoft.com/fwlink/?LinkId=221672#FileOrFolderNotFound了解详情。

发布命令:

  

“C:\ Program Files \ dotnet \ dotnet.exe”发布“C:\ Program Files   (x86)\ Jenkins \ workspace \ Temp Publish \ Site.Web“--framework net451   --output“D:\ TempPublish” - 配置发布

由于未创建approot文件夹,因此msdeploy命令成功执行但在部署完成后无法正常工作。

MsDeploy命令:

  

“C:\ Program Files(x86)\ IIS \ Microsoft Web Deploy V3 \ msdeploy.exe”   -source:IisApp ='D:\ TempPublish \ wwwroot' -dest:IisApp ='hhhhhhhh',ComputerName ='https://xxxx-zxxx.scm.azurewebsites.net/msdeploy.axd',UserName ='$ xxxxx',Password ='yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy',IncludeAcls ='False' ,进行AuthType = '基本'   -verb:sync -enableLink:contentLibExtension

Project.Json - 发布后脚本:

  

“scripts”:{       “postpublish”:[“dotnet publish-iis --publish-folder%publish:OutputPath% - framework%publish:FullTargetFramework%”]}

这里可能出现什么问题?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

对我来说,看起来PublishProfile pubxml和/或ps1已从RC1更改为RC2。

我删除了本地PublishProfiles文件夹的内容,从Azure门户重新下载了Web应用程序的发布配置文件,使用Visual Studio中的“发布”向导导入它,并且发布成功。

答案 1 :(得分:0)

好的,经过多次努力,我找到了答案。相信我,看到它后你会感到愚蠢。

问题不是在发布脚本而不是在部署脚本中,而是在寻找错误的路径。

正确命令:

  

" C:\ Program Files(x86)\ IIS \ Microsoft Web Deploy V3 \ msdeploy.exe"   -source:IisApp =' d:\ TempPublish \' -dest:IisApp =' xyztwee__testing',计算机名=' https://xxxx-zzzzz.scm.azurewebsites.net/msdeploy.axd',用户名=' $ xyztwe__testing',密码=' LOL53encrypted7beyond9your4limit5Dont70waste87Time&# 39;,IncludeAcls ='假',=进行AuthType'具有基本'   -verb:sync -enableLink:contentLibExtension

注意源路径,来源:IisApp =' D:\ TempPublish \'而不是' D:\ TempPublish \ wwwroot'在已发布文件夹中搜索wwwroot文件夹只提供已发布的文件夹作为源。

希望这可以帮助某人并节省一些时间。