Как использовать публикацию VS2010, чтобы добавить доступ для записи в папку для сетевой службы? - PullRequest
1 голос
/ 03 февраля 2012

Мне нужно убедиться, что у некоторых каталогов выгрузки всегда есть доступ на запись для сетевой службы. Я создал XML-файл ProjectName.wpp.targets, содержащий конфигурацию, чтобы добавить его в процессе публикации в Visual Studio 2010, но, похоже, он не работает. Нет ошибок, но доступ для записи не применяется. Я перезапускаю VS после любого изменения, чтобы он не кэшировал предыдущую версию. Вот мой XML:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="SetupCustomAcls" AfterTargets="AddIisSettingAndFileContentsToSourceManifest">
        <ItemGroup>
            <MsDeploySourceManifest Include="setAcl">
                <Path>$(_MSDeployDirPath_FullPath)\Assets\Uploads\FirstFolder</Path>
                <setAclAccess>Read,Write</setAclAccess>
                <setAclResourceType>Directory</setAclResourceType>
                <AdditionalProviderSettings>setAclResourceType;setAclAccess</AdditionalProviderSettings>
            </MsDeploySourceManifest>
            <MsDeploySourceManifest Include="setAcl">
                <Path>$(_MSDeployDirPath_FullPath)\Assets\Uploads\SecondFolder</Path>
                <setAclUser>NETWORK SERVICE</setAclUser>
                <setAclAccess>Read,Write</setAclAccess>
                <setAclResourceType>Directory</setAclResourceType>
                <AdditionalProviderSettings>setAclUser;setAclResourceType;setAclAccess</AdditionalProviderSettings>
            </MsDeploySourceManifest>
        </ItemGroup>
    </Target>
    <Target Name="DeclareCustomParameters" AfterTargets="AddIisAndContentDeclareParametersItems">
        <ItemGroup>
            <MsDeployDeclareParameters Include="FirstFolderSetAclParam">
                <Kind>ProviderPath</Kind>
                <Scope>setAcl</Scope>
                <Match>^$(_EscapeRegEx_MSDeployDirPath)\\Assets\\Uploads\\FirstFolder$</Match>
                <Description>Add write permission to the FirstFolder.</Description>
                <DefaultValue>{$(_MsDeployParameterNameForContentPath)}/Assets/Uploads/FirstFolder</DefaultValue>
                <Value>$(_DestinationContentPath)/Assets/Uploads/FirstFolder</Value>
                <Tags>Hidden</Tags>
                <Priority>$(VsSetAclPriority)</Priority>
                <ExcludeFromSetParameter>True</ExcludeFromSetParameter>
            </MsDeployDeclareParameters>
            <MsDeployDeclareParameters Include="SecondFolderSetAclParam">
                <Kind>ProviderPath</Kind>
                <Scope>setAcl</Scope>
                <Match>^$(_EscapeRegEx_MSDeployDirPath)\\Assets\\Uploads\\SecondFolderFuelBills$</Match>
                <Description>Add write permission to the SecondFolder.</Description>
                <DefaultValue>{$(_MsDeployParameterNameForContentPath)}/Assets/Uploads/SecondFolder</DefaultValue>
                <Value>$(_DestinationContentPath)/Assets/Uploads/SecondFolder</Value>
                <Tags>Hidden</Tags>
                <Priority>$(VsSetAclPriority)</Priority>
                <ExcludeFromSetParameter>True</ExcludeFromSetParameter>
            </MsDeployDeclareParameters>
        </ItemGroup>
    </Target>
</Project>

Я публикую в сетевой папке, так что, возможно, это что-то, поскольку все примеры, которые я могу найти (не так много), касаются IIS.

Как получить запись службы сети в эти каталоги? Нужно ли что-то явно добавлять в свойствах проекта?

Richard

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...