2016-01-14 3 views
1

Я имел взгляд на этот вопрос: Publish WebAPI and MVC projects to same Azure Web Site?Выполнить два разных ASP.NET 5 приложений под одной Azure Web App

но Безразлично не работает должным образом для «вторичного» приложения.

и из этого я узнал о виртуальных каталогах в службах веб-приложений Azure (ранее называвшихся сайтами Azure).

Я пытаюсь развернуть те же веб-приложения Azure для веб-приложений 2. Оба ASP.NET 5 приложений (они будут MVC 6) под названием решение MyOAuth:

  • MyAPI: ASP.NET 5 приложений, которые должны быть доступны через myoauth.azurewebsites.com
  • MyAuth: ASP.NET 5 приложений, которые должны быть доступны через myoauth.azurewebsites.com/oauth
Solution 'MyOAuth' 
    |-src 
    |- MyApi 
    |- MyAuth 

Таким образом, в службе Azure Web App, которое я создал (так называемый также MyOAuth), в настройках у меня есть следующие виртуальные приложения и каталоги:

/  site\wwwroot   Application 
/oauth site\wwwroot\oauth Application 

Опубликовать соединение с Visual Studio 2015 для них обоих являются:

  • MyAPI
Server: myoauth.scm.azurewebsites.net:443 
Site Name: MyOAuth 
User Name: ***** 
Password: **** 
Destination URL: http://myoauth.azurewebsites.net 
  • MyOAuth
Server: myoauth.scm.azurewebsites.net:443 
Site Name: MyOAuth/oauth 
User Name: ***** 
Password: **** 
Destination URL: http://myoauth.azurewebsites.net/oauth 

Это конфигурация запуска для обоих проектов:

Startup.cs для MyAPI

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

Startup.cs для MyAuth

//... 
public void Configure(IApplicationBuilder app) 
{ 
    app.UseIISPlatformHandler(); 
    app.Run(async (context) => 
    { 
     await context.Response.WriteAsync("...And hello MyAuth app"); 
    }); 
} 

После публикации, когда я достигаю http://myoauth.azurewebsites.net я получаю правильный ответ Hello MyApi app, но при запросе http://myoauth.azurewebsites.net/oauth я получаю ошибку сервера 500 с текстом The page cannot be displayed because an internal server error has occurred.

мне удалось извлеките из файла Azure LogFiles следующее подробное описание:

Ошибка HTTP 500.19 - Внутренняя ошибка сервера Запрошенная страница не может быть доступна, потому что связанные данные конфигурации для страницы недействительны.

Подробная информация об ошибке: Модуль IIS Web Ядро Уведомление BeginRequest Обработчик Пока не определено Код ошибки 0x800700b7 Config Ошибка Не удается добавить повторяющиеся записи коллекции типа «добавить» с уникальным ключом «имя» атрибута установлено значение «httpplatformhandler» Config Файл \ \ D: \ главная \ сайт \ Wwwroot \ OAuth \ web.config Запрошенный URL
http://MyOAuth:80/oauth Физический путь D: \ главная \ сайт \ Wwwroot \ OAuth Метод входа пока не определено Logon Пользователь еще не определено

Config Источник:

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

Может кто-нибудь посоветовать по этому или дать мне решение о том, как запустить 2 разных ASP.NET 5 приложений под тем же Azure Web App Service, пожалуйста? Спасибо!

ответ

2

Его можно следующие структуры папок описано здесь:

https://github.com/aspnet/dnx/issues/928#issuecomment-171617386

Проблема заключается в том, что я еще не нашел инструментов, что делает его легко сделать с помощью vs2015 или VSTeamServices

Одним из ключевых вещи, которые я должен был сделать, чтобы они работали (все еще выполнялись некоторые шаги по развертыванию вручную), но я обнаружил одну проблему в моей настройке, которая могла бы помочь вам и я думаю). Далее будет исправить ошибку 500.19

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

Более подробная информация по той же теме можно найти по адресу: Deploying aspnet5 apps to virtual directories on azure websites

+0

Я до сих пор не в полной мере понять, какие изменения необходимы. В соответствии с вашим вопросом здесь: http://stackoverflow.com/questions/34784391/deploying-aspnet5-apps-to-virtual-directories-on-azure-websites Структура в Azure, имеющая app0 с '' 'wwwroot/web .config''' и app1 (называемый oauth в моем случае) с '' 'wwwroot/oauth/web.config''', похоже, вызывает проблему для app1. Вы говорите, что мне нужно вручную изменить структуру папки/файла непосредственно в Azure, чтобы она работала? – iberodev

+1

Я говорю, что я еще не работал с инструментами, которые по умолчанию находятся в визуальной студии. У меня только что появился пример работы с 3 приложениями, но из командной строки был msdeploy. Я буду обновлять ответ с дополнительной информацией, поскольку я нахожу его. –