У меня ошибка лучевого пистолета в веб-приложении Azure, которая меня сбивает.
d:\local\Temporary ASP.NET Files\root\8c572dab\d52156ac\
App_Web_636035960914530576dbc451921d-d5ba-4ab9-ae23-
3aebe17a2fcd.cshtml.ae8ccf29.453z6dsh.0.cs(151):
error CS1528: Expected ; or = (cannot specify constructor arguments in declaration)
Сама ошибка имеет смысл - это просто сгенерированный файл бритвы с синтаксической ошибкой. Это расположение сгенерированного файла, который сбивает меня с толку.
Это веб-приложение работает только с одним экземпляром. Однако когда я иду в куду за приложением и просматриваю его, я не могу найти этот путь. Вместо этого я вижу:
D:\local\Temporary ASP.NET Files\root>ls
6260ae3c
Что мне не хватает в Azure? Если бы это веб-приложение могло масштабироваться до нескольких экземпляров, я бы понял, что, возможно, я использовал куду не тот экземпляр. Хотя существует только один экземпляр, я действительно не понимаю.
Расположение временных файлов для веб-приложений Azure всегда выглядит как D: \ local \ Temp. Однако вся папка D: \ local ЗАМОНТИРОВАНА в разные места для каждого веб-приложения с помощью Azure.
Это означает, что каждое веб-приложение будет видеть свой D: \ local, что, возможно, не слишком удивительно. Однако настоящая уловка заключается в том, что KUDU сам по себе работает как отдельный процесс и получает свой собственный частный D: \ local. Таким образом, вы на самом деле просматриваете частный D: \ local KUDU, а не свое приложение.
Кто-то, должно быть, понял, что это может быть проблемой в сценариях отладки, поэтому есть способ избежать этого: добавьте параметр приложения с именем «WEBSITE_DISABLE_SCM_SEPARATION» и значением «true» в свое приложение через портал Azure.
После перезапуска приложения при использовании KUDU вы должны увидеть тот же D: \ local (включая временные файлы), который видит ваше приложение.
Вам, вероятно, следует отключить этот параметр, когда вы закончите, так как разделение по умолчанию может присутствовать по какой-то причине.
Только что нашел (официальный) источник и дополнительные пояснения к WEBSITE_DISABLE_SCM_SEPARATION
(неподдерживаемый!) флаг упоминается у Оле Толшаве ответ.
Вики-страница Kudu: Общие сведения о файловой системе службы приложений Azure
Еще одно важное замечание: главный сайт и сайт scm не используют общие временные файлы. Поэтому, если вы напишете туда файлы со своего сайта, вы не увидите их из Kudu Console (и наоборот). Вы можете заставить их использовать одно и то же временное пространство, если отключите разделение (через WEBSITE_DISABLE_SCM_SEPARATION). Но учтите, что это устаревший флаг, и его использование не рекомендуется / не поддерживается.