Даже ванильная функция Azure не будет публиковать из VS - PullRequest
0 голосов
/ 30 мая 2019

Сегодня вечером я создал функцию Azure в Visual Studio, и у меня были ошибки при ее публикации. Таким образом, я создал ванильный HTTP-триггер и попытался опубликовать его, без изменений кода. Те же ошибки. Я вошел в свою учетную запись Azure, загрузил профиль публикации, сбросил его и повторил попытку. Я сделал это, выбрав приложение функции в IDE. Я попытался выяснить, как FTP использовать приложение-функцию, но я поднял файлы, и на портале ничего не появилось (я скопировал папку сборки в папку wwwroot на сервере). В FTP я вижу в папке развертывания некоторые файлы, обозначающие, что попытка развертывания завершилась неудачно, поэтому он обращается к Azure и решает, что он не работает.

Журнал ошибок не очень полезен:

30/05/2019 20:46:11 System.AggregateException: произошла одна или несколько ошибок. ---> System.Exception: публикация не удалась. --- Конец внутренней трассировки стека исключений --- в System.Threading.Tasks.Task.ThrowIfExceptional (логическое значение includeTaskCanceledExceptions) в System.Threading.Tasks.Task.Wait (Int32 миллисекундTimeout, CancellationToken cancellationToken) в Microsoft.Publish.Framework.Model.DefaultPublishSteps. <> c__DisplayClass26_0.b__2 () в System.Threading.Tasks.Task`1.InnerInvoke () в System.Threading.Tasks.Task.Execute () --- Конец стека трассировки от предыдущего местоположения, где было сгенерировано исключение --- в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) в Microsoft.Publish.Framework.Model.DefaultPublishSteps.d__23.MoveNext () --- Конец стека трассировки от предыдущего местоположения, где было сгенерировано исключение --- в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) в Microsoft.Publish.Framework.ViewModel.ProfileSelectorViewModel.d__176.MoveNext () ---> (Внутреннее исключение # 0) System.Exception: публикация не удалась. <--- </p>

===================

Я был бы очень рад сделать это через FTP, если бы было руководство о том, что и куда ставить.

Ответы [ 2 ]

0 голосов
/ 31 мая 2019

Итак, я нашел проблему. Если вы создадите функцию внутри Azure и загрузите ее, она будет использовать файлы csx, что не то, что я хотел, но файл local.settings.json содержит массу настроек, которых нет в сгенерированном файле VS. Копирование их в мой проект заставило все это работать. Вы должны использовать свою собственную загрузку, чтобы настройки были правильными для вас, но это были настройки, подобные этим:

"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"WEBSITE_SLOT_NAME": "Production",
"FUNCTIONS_EXTENSION_VERSION": "~2",
"ScmType": "None",
"WEBSITE_AUTH_ENABLED": "False",
"APPINSIGHTS_INSTRUMENTATIONKEY": "xxxxxx",
"WEBSITE_NODE_DEFAULT_VERSION": "10.14.1",
"WEBSITE_CONTENTAZUREFILECONNECTIONSTRING": "DefaultEndpointsProtocol=xsxxxxxx",
"WEBSITE_CONTENTSHARE": "xxxx",
"WEBSITE_SITE_NAME": "xxxxxx",
"AzureWebJobsStorage": "DefaultEndpointsProtocol=xxxxxxxx"

Развертывание также привело к тому, что мой проект загрузил недостающие библиотеки DLL, поэтому кажется, что мастер в Visual Studio полностью завершен.

0 голосов
/ 31 мая 2019

Я не уверен насчет проблемы Visual Studio.Однажды я столкнулся с чем-то похожим, и мне потребовалось выйти из моей подписки Azure и снова войти в систему, прежде чем она будет решена.Вы можете попробовать, если вы этого еще не сделали.

Что касается альтернативных стратегий развертывания, я предлагаю вам взглянуть на Запуск из пакета развертывания.Это позволяет вам опубликовать ваше приложение в виде zip-файла и запустить его таким образом.Другие специфичные для MS инструменты (код VS, конвейеры Azure и т. Д.) Движутся в направлении использования этого механизма, а не устаревшего механизма «MSDeploy», который используется в Visual Studio сегодня.

...