在同一Azure Web应用程序下运行两个不同的ASP.NET 5应用程序

在同一Azure Web应用程序下运行两个不同的ASP.NET 5应用程序,azure,asp.net-core,azure-web-app-service,Azure,Asp.net Core,Azure Web App Service,我看过这个问题: 但是对于“辅助”应用程序,它不能正常工作 从中我了解了Azure web app服务(以前称为Azure网站)中的虚拟目录 我正在尝试部署到相同的Azure web apps 2 web应用程序中。这两个应用程序都是ASP.NET 5应用程序(它们将是MVC 6),采用名为MyOAuth的解决方案: MyApi:ASP.NET 5应用程序,可通过myoauth.azurewebsites.com访问 MyAuth:ASP.NET 5应用程序,可通过MyAuth.azurew

我看过这个问题:

但是对于“辅助”应用程序,它不能正常工作

从中我了解了Azure web app服务(以前称为Azure网站)中的虚拟目录

我正在尝试部署到相同的Azure web apps 2 web应用程序中。这两个应用程序都是ASP.NET 5应用程序(它们将是MVC 6),采用名为MyOAuth的解决方案:

  • MyApi:ASP.NET 5应用程序,可通过myoauth.azurewebsites.com访问
  • MyAuth:ASP.NET 5应用程序,可通过MyAuth.azurewebsites.com/oauth访问
因此,在我创建的Azure Web App服务(也称为MyOAuth)中,在设置下,我有以下虚拟应用程序和目录:

/        site\wwwroot         Application
/oauth   site\wwwroot\oauth   Application
来自Visual Studio 2015的发布连接用于这两个项目:

  • MyApi
  • 迈奥特
以下是两个项目的启动配置:

MyApi的Startup.cs

//...
public void Configure(IApplicationBuilder app)
{
    app.UseIISPlatformHandler();
    app.Run(async (context) =>
    {
        await context.Response.WriteAsync("Hello MyApi app");
    });
}
MyAuth的Startup.cs

//...
public void Configure(IApplicationBuilder app)
{
    app.UseIISPlatformHandler();
    app.Run(async (context) =>
    {
        await context.Response.WriteAsync("...And hello MyAuth app");
    });
}
发布后,当我访问时,我得到了正确的响应
Hello MyApi app
,但当请求时,我得到了带有文本
的服务器500错误,因为发生了内部服务器错误,所以无法显示页面。

我设法从Azure LogFiles文件夹中检索到以下详细错误:

HTTP错误500.19-内部服务器错误无法访问请求的页面 已访问,因为页面的相关配置数据为 无效

详细错误信息:模块IIS Web核心 通知开始请求 处理程序尚未确定 错误代码0x800700b7 配置错误无法添加类型为“add”的重复集合项 将唯一键属性“name”设置为“httpplatformhandler”配置 文件\?\D:\home\site\wwwroot\oauth\web.config请求的URL
物理路径D:\home\site\wwwroot\oauth 登录方法尚未确定登录用户尚未确定

配置源:

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

请问,有谁能就此提供建议,或者给我一个解决方案,说明如何在同一Azure Web App服务下运行2个不同的ASP.NET 5应用程序?
谢谢大家!

可能遵循此处概述的文件夹结构:

问题是,我还没有找到可以轻松使用vs2015或VSTeamServices的工具

我必须做的一件关键事情就是让它工作(仍然做了一些手动部署步骤-但我发现我的设置中有一个问题,我想这也可以帮助您)。下面将修复500.19错误

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


我仍然不完全理解需要进行哪些更改。根据您在这里提出的问题:Azure中的结构使app0具有
wwwroot/web.config
和app1(在我的例子中称为oauth)具有
wwwroot/oauth/web.config
似乎是导致app1出现问题的原因。你是说我必须直接在Azure中手动更改文件夹/文件结构才能使其正常工作?我是说我还没有使用visual studio中的默认工具使其正常工作。我刚刚得到一个使用3个应用程序的示例,但这涉及命令行中的msdeploy。我会更新一些更多的信息,因为我发现它的答案。
//...
public void Configure(IApplicationBuilder app)
{
    app.UseIISPlatformHandler();
    app.Run(async (context) =>
    {
        await context.Response.WriteAsync("...And hello MyAuth app");
    });
}
<handlers>
  <add name="httpplatformhandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
</handlers>
    <handlers>
      <remove name="httpplatformhandler" />
      <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
    </handlers>