Это поведение по умолчанию для всех методов, которые сохраняют файлы в C # / ASP.NET : Обычно это должно быть задокументировано в записи MSDN метода. Например, в документации к конструктору StreamWriter прямо упоминается, что файлы перезаписываются. К сожалению, XElement.Save не имеет такой спецификации, поэтому строго говоря , вы, вероятно, не должны полагаться на это поведение и использовать, например, обходной путь, описанный Николь.
Лично я не верю, что это зависит от сервера и что XElement.Save всегда будет перезаписывать файл, но чтобы убедиться, что вам придется изучить исходный код XElement.Save (используя дизассемблер, декомпилятор или справочный источник .NET ). Однако даже тогда полагаться на это поведение было бы плохой практикой, поскольку оно недокументировано и может измениться в будущих выпусках Framework.
О каталоге: Да, App_Data - это место, куда должны идти файлы, созданные вашим приложением.