使用新的powershell发布工具为无虚拟目录部署时的默认文件夹结构是
/data
/LogFiles
/site
/site/appRoot
/site/wwwroot
/site/wwwroot/web.config
/site/locks
/site/deployments
结构变为
/site/wwwroot/approot
/site/wwwroot/testvirt
/site/wwwroot/testvirt/web.config
这是在wwwroot文件夹中让虚拟目标批准的预定方式吗? 在批准的位置是否有任何灵活性。添加下一个虚拟应用程序时会发生什么,查看文件结构是否会覆盖第一个虚拟应用程序的批准?
答案 0 :(得分:4)
可以找到相关信息:https://github.com/aspnet/dnx/issues/928#issuecomment-171617386
我设法通过在azure门户网站上设置虚拟目录设置来并排运行3个虚拟应用程序,如下所示:
然后我使用命令行将我的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>