将aspnet5应用程序部署到azure网站上的虚拟目录

时间:2016-01-14 08:03:29

标签: powershell azure msdeploy asp.net-core

使用新的powershell发布工具为无虚拟目录部署时的默认文件夹结构是

/data
/LogFiles
/site
/site/appRoot
/site/wwwroot
/site/wwwroot/web.config
/site/locks
/site/deployments

然后将新应用程序部署到虚拟目录中时: enter image description here

结构变为

/site/wwwroot/approot
/site/wwwroot/testvirt
/site/wwwroot/testvirt/web.config

这是在wwwroot文件夹中让虚拟目标批准的预定方式吗? 在批准的位置是否有任何灵活性。添加下一个虚拟应用程序时会发生什么,查看文件结构是否会覆盖第一个虚拟应用程序的批准?

2 个答案:

答案 0 :(得分:4)

可以找到相关信息:https://github.com/aspnet/dnx/issues/928#issuecomment-171617386

我设法通过在azure门户网站上设置虚拟目录设置来并排运行3个虚拟应用程序,如下所示: enter image description here

然后我使用命令行将我的webapp部署到所有3个用于测试,就像visual studio一样。

"C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe" -source:IisApp='C:\Users\pks\AppData\Local\Temp\PublishTemp\appname53' -dest:IisApp='appname/app2',ComputerName='https://appname.scm.azurewebsites.net/msdeploy.axd',UserName='$appname',Password='',IncludeAcls='False',AuthType='Basic' -verb:sync -enableLink:contentLibExtension  -retryAttempts:2

并通过web.config手动将其复制到父文件夹,如@davidfowl建议的github中所示。

因此目前无法直接使用visual studio工具发布此行为。如果只需要root和一个额外的虚拟应用程序,那么将它与visual studio配合应该是可行的。如果想要更多,则批准文件夹将发生冲突。

我还遇到了一个错误(不确定是否是由于很多手动web.config复制),虚拟应用程序已经添加了httpplatform处理程序,并且它开始抛出500个错误,修复程序是更新web.config

 <handlers>
      <remove name="httpplatformhandler" />
      <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
    </handlers>

答案 1 :(得分:1)

我一直在使用Azure网络应用服务虚拟应用程序目录。在Azure中,以下处理程序将始终附加在子虚拟应用程序的web.config中,无论如何!

<handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>

诀窍是通过使用以下代码添加以下代码来删除处理程序“aspNetCore”:

<handlers>
      <remove name="aspNetCore"/>
</handlers>