2016-12-22 2 views
1

Я создал новое веб-приложение ASP.NET Core .NET Framework. Я использую .NET Framework 4.5.2. Я нажимаю правой кнопкой мыши на проекте и выбираю публикацию, чтобы опубликовать проект в Azure с помощью Web Deploy. Первая попытка проваливается «Отсутствует корневой элемент» или что-то в этом роде. Вторая попытка удалась. Но каждый раз, когда я пытаюсь опубликовать проект на сайт приложения в Azure, после этого я получаю сообщение об ошибке:Веб-развертывание не может изменить файл «xxx.exe» в пункте назначения, поскольку он заблокирован внешним процессом

Веб-развертывание не может изменить файл «xxx.exe» в пункте назначения, поскольку он заблокирован внешним процессом.

Почему это?

Я не могу найти решение этого вопроса ... Невозможно ли опубликовать ASP.NET Core Web Application (.Net Framework) для Azure в наиболее простых возможных способах публикации?

Мой project.json выглядит следующим образом:

{ 
    "dependencies": { 
    "AutoMapper": "3.2.1", 
    "Dropbox.Api": "3.4.0", 
    "EnterpriseLibrary.TransientFaultHandling": "6.0.1304", 
    "EntityFramework": "6.1.3", 
    "Klarna.Net.Api": "4.0.0", 
    "Microsoft.AspNetCore.Mvc": "1.1.0", 
    "Microsoft.AspNetCore.Routing": "1.1.0", 
    "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.1.0", 
    "Microsoft.Azure.DocumentDB": "1.10.0", 
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0", 
    "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0", 
    "Microsoft.Extensions.Configuration.Json": "1.1.0", 
    "Microsoft.Extensions.Logging": "1.1.0", 
    "Microsoft.Extensions.Logging.Console": "1.1.0", 
    "Microsoft.Extensions.Logging.Debug": "1.1.0", 
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0", 
    "PDFsharp": "1.32.3057", 
    "RavenDB.Client": "2.5.2910", 
    "SaasKit.Multitenancy": "1.1.4", 
    "Stripe.net": "6.0.1", 
    "IdentityServer4.AccessTokenValidation": "1.0.1-rc5", 
    "Newtonsoft.Json": "9.0.1", 
    "Microsoft.AspNetCore.Cors": "1.1.0", 
    "Microsoft.AspNetCore.Diagnostics": "1.1.0", 
    "Microsoft.AspNetCore.StaticFiles": "1.1.0", 
    "Swashbuckle": "6.0.0-beta902" 
    }, 

    "tools": { 
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": { 
     "version": "1.1.0-preview4-final", 
     "imports": "portable-net45+wp80+win8+wpa81+dnxcore50" 
    } 
    }, 

    "frameworks": { 
    "net452": { 
     "dependencies": { 
     "Adocka.Common": { 
      "target": "project" 
     }, 
     "Adocka.Core": { 
      "target": "project" 
     }, 
     "Adocka.Core.Dto": { 
      "target": "project" 
     }, 
     "Adocka.Dal": { 
      "target": "project" 
     } 
     } 
    } 
    }, 

    "buildOptions": { 
    "emitEntryPoint": true, 
    "preserveCompilationContext": true, 
    "xmlDoc": true 
    }, 
    "publishOptions": { 
    "include": [ 
     "wwwroot", 
     "**/*.cshtml", 
     "appsettings.json", 
     "web.config" 
    ] 
    }, 
    "runtimeOptions": { 
    "configProperties": { 
     "System.GC.Server": true 
    } 
    }, 
    "scripts": { 
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] 
    } 
} 

ответ

1

Это обычно происходит, если ваш уже публиковали ваше приложение и работает, следовательно, сообщение об ошибке вы получаете.

При развертывании сначала остановите свое веб-приложение (с портала Azure выберите свое веб-приложение и нажмите кнопку «Стоп»), выполните развертывание и запустите его снова. Вы также можете автоматизировать процесс с помощью скрипта powershell.

+0

Действительно ли это необходимо? Чтобы остановить мое веб-приложение для работы со многими одновременными пользователями/посетителями и опубликовать новую версию ... Похоже на очень плохую идею ... Microsoft решила много отличных вещей, открыла все, сделала ее кросс-платформой, сделала ее самостоятельно etcetc ... Но сбой на последнем шаге, вы не можете опубликовать свое законченное приложение для azure ....? –

+0

В качестве альтернативы вы можете публиковать в промежуточном слоте и своп-постановке с постановкой. – Milen