Ответ 1
По умолчанию мы вызываем поставщика Web Deploy SetAcl в папке App_Data, это поведение контролируется свойством MSBuild, IncludeSetAclProviderOnDestination. Значение по умолчанию для этого свойства истинно в% ProgramFiles32%\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets. Если вы хотите запретить вызов провайдера SetAcl, вы можете просто установить для этого свойства значение false при публикации. Для этого выполните следующие действия.
- В том же каталоге, что и ваш проект, создайте файл с именем {ProjectName}.wpp.targets(где {ProjectName} - это имя вашего проекта веб-приложения)
- Внутри файла вставьте содержимое MSBuild, которое находится ниже этого списка
- Перезагрузите проект в Visual Studio (VS кэширует файлы проекта в памяти, чтобы этот кеш нужно очистить).
{Имя_проекта}.wpp.targets
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<IncludeSetAclProviderOnDestination>false</IncludeSetAclProviderOnDestination>
</PropertyGroup>
</Project>
Внутри этого файла вы видите, что я объявляю это свойство и устанавливаю его значение False. После того, как у вас есть этот файл, он будет автоматически подхвачен нашим процессом публикации, как из Visual Studio, так и из любых операций публикации из командной строки.
Можете ли вы попробовать это и сообщить мне, есть ли у вас дополнительные проблемы?