相关信息可以在这里找到:https://github.com/aspnet/dnx/issues/928#issuecomment-171617386
我通过在Azure门户上设置虚拟目录设置来实现了3个虚拟应用程序的并行运行,如下所示:
然后我使用命令行将我的Web应用程序部署到所有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
并按照 @davidfowl 在 Github 中的建议,手动将 web.config 复制到父文件夹中。
目前使用 Visual Studio 工具无法直接发布此行为。如果只需要根目录和一个额外的虚拟应用程序,则可以通过 Visual Studio 使其正常工作。如果需要更多,则 approots 文件夹将发生冲突。
我还遇到了一个错误(不确定是否由于大量手动复制 web.config),即虚拟应用程序已经添加了 httpplatform 处理程序,并且开始抛出 500 错误,解决方法是更新 web.config。
<handlers>
<remove name="httpplatformhandler" />
<add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
</handlers>