VDir deployment on local dev

Topics: IIS and Web Services
Mar 17, 2016 at 7:26 PM
I am new to BTDF and am running into an issue I can't find any examples of anywhere else. I am trying to redeploy an app on my local development instance with the IncludeVirtualDirectories option set to true. I copied the WCF service folder into a folder in my project and set my ItemGroup as follows:

<VDirList Include="*">
  <Vdir>ufCashnetBLService</Vdir>
  <Physdir>..\ufCashnetBLService</Physdir>
  <AppPool>BizTalkWSHTTP</AppPool>
  <AppPoolNetVersion>v4.0</AppPoolNetVersion>
</VDirList>
When I run the deploy step, I get the following error:

(DeployNTFSPermissionsOnVDirPaths target) ->
C:\Program Files (x86)\MSBuild\DeploymentFrameworkForBizTalk\5.0\BizTalkDeploymentFramework.targets(1758,5): error MSB3073: The command "cacls "..\ufCashnetBLService" /E /G grparham:R" exited with code 13. [E:\Projects\uf.biztalk.CashnetBalanceLookup\Deployment\Deployment.btdfproj]

The error means "The data is invalid". Should I not be trying to use this feature on a local dev machine (i.e. I should change the setting on the project file and set it to false for local deployment) or is there some other issue someone else knows about for this? Any help is appreciated.
Coordinator
Mar 17, 2016 at 7:31 PM
You can go run the command directly from a Command Prompt (after cd'ing to the folder with the .btdfproj file if that's the relative path relationship to ufCashnetBLService):
cacls "..\ufCashnetBLService" /E /G grparham:R

One guess is that you haven't domain-qualified grparham, so if it's a domain account it may not resolve. Otherwise, play with the cacls parameters a bit if it still doesn't work and let me know what you discover.

Thanks,
Tom
Mar 17, 2016 at 7:49 PM
Thanks for the info. I ran the command manually before, that was how I actually received the "The data is invalid" error. I ran it again with my domain qualified account "domain\grparham" and it didn't throw an error. Do I need to specify the account name specifically somewhere to prevent this from happening? I'm not generating the cacls command, it's part of the deploy process and I don't immediately see where I would set the full domain qualified username.
Apr 11, 2016 at 3:27 AM
Edited Apr 11, 2016 at 2:28 PM
(edited with further information)

I just ran into the same issue using BTDF 5.6 to do a local deployment from Visual Studio on Windows 2012 Server R2. Was there any resolution to this that you found?

If the issue occurs due to the missing domain in the user name, then it would apparently have something to do with how the $(VDIR_UserName) variable is determined during local deployments. Perhaps it is possible to override it?

(added)
I'm not sure if the missing domain caused the problem, in my case. I believe I ran into the issue because the Physdir already existed in a local deployment. I'm not sure if it will happen again when I use the MSI. When using cacls and the target folder already exists, the /P option should be used.

I may try to solve my problem either by changing the Physdir in preprocessing for Local deployments, or by setting the ModifyNTFSPermissionsOnVDirPaths property to false on Local deployments.

Any thoughts?

Thanks!