Когда я определяю свое приложение .NET Core для запуска в Linux в службах приложений Azure с помощью linuxFxVersion: 'DOTNETCORE:8.0'
и reserved: true
, я продолжаю получать ответы HTTP 404 от Nginx.
Приложение отлично работает в Windows в службах приложений Azure.
Глядя на журналы, кажется, что службы приложений загружают образ PHP, который выводит версию PHP 8.0.x
.
Кто-нибудь сталкивался с чем-то подобным и знает, как это исправить?
Код:
resource appServicePlan 'Microsoft.Web/serverfarms@2022-03-01' = {
name: appServicePlanName
location: location
sku: environmentConfigurationMap[environment].appServicePlan.sku
properties: {
reserved: true
}
kind: 'linux'
}
resource appServiceApp 'Microsoft.Web/sites@2022-03-01' = {
name: appServiceAppName
location: location
identity: { type: 'SystemAssigned' }
properties: {
serverFarmId: appServicePlan.id
httpsOnly: true
siteConfig: {
linuxFxVersion: 'DOTNETCORE:8.0'
// netFrameworkVersion: 'v8.0'
appSettings: [
{
name: 'APPINSIGHTS_INSTRUMENTATIONKEY'
value: applicationInsights.properties.InstrumentationKey
}
{
name: 'APPLICATIONINSIGHTS_CONNECTION_STRING'
value: applicationInsights.properties.ConnectionString
}
]
}
}
}
Ошибка:
@RuiJarimba Спасибо за ваше предложение. Но не следует ли мне использовать вывод значения с помощью az webapp list-runtimes --os-type linux
? В таком случае могу уточнить DOTNETCORE:[6-8].0
Попробуйте. Я видел несколько сообщений, где люди используют синтаксис DOTNETCORE|x.x
.
@RuiJarimba Это сработало! Мне даже разрешено устанавливать произвольные значения для стека времени выполнения: az webapp config set --name todo-app-rbqkyp2g5zxmq --resource-group todoapptest --linux-fx-version 'DOTNETFOO:4.0'
@RuiJarimba Где документированы эти значения, если Azure сама их не документирует? ИМХО, это очень грязно. Нет проверки ввода, Azure CLI не выводит реальные значения,...
Честно говоря, мне не удалось найти официальную документацию Microsoft по этому параметру.
Но учитывая, что это корпоративный сервис Azure, как другие будут искать правильные значения времени выполнения? Они раскрываются в случайных сообщениях в блогах, или?
Может быть, правильные значения можно «перепроектировать» из веб-источника портала Azure?
На самом деле документация по команде az webapp config set показывает правильный синтаксис для каждого стека среды выполнения, даже несмотря на то, что она не отображает все допустимые версии для каждого из них: --linux-fx-version - The runtime stack used for your linux-based webapp, e.g., "RUBY|2.5.5", "NODE|12LTS", "PHP|7.2", "DOTNETCORE|2.1"
Спасибо. Тогда az webapp list-runtimes
надо исправлять :)
Правильный синтаксис для установки версии .NET в linuxFxVersion
— DOTNETCORE|x.x
, даже для .NET 6 или .NET 8.
Итак, вместо:
DOTNETCORE:8.0
Использовать:
DOTNETCORE|8.0
Попробуйте
DOTNETCORE|8.0
вместоDOTNETCORE:8.0
?