我正在尝试使用服务定义文件中的SourceDirectory功能,首先将“Base”目录的内容复制到Web角色,然后复制“AdditionalFiles”的内容。这适用于Azure中的调试,但是在打包解决方案时,如果AdditionalFiles文件夹包含与Base目录中相同位置的文件,则在打包解决方案时会出现Accessed Denied错误。
错误7拒绝访问路径'C:\ Users \ Alex \ AppData \ Local \ Temp \ vo0niiyx.rvt \ roles \ TestWebRole1 \ approot \ connectionStrings.config'。 C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Windows Azure Tools \ 1.5 \ Microsoft.WindowsAzure.targets 2
为了将其置于上下文中,我正在努力将现有应用程序迁移到Azure中运行。我正在做的第一步是简单地包装现有的功能,以便它只是在天蓝色中运行。此外,原始代码库正在快速变化,所以我想保持我的包装自定义非常独立,以避免不断处理合并等。到目前为止,我一直在通过一些复杂的PowerShell构建脚本处理这个问题。
作为参考,下面是我正在使用的ServiceDefinition文件,以及我的解决方案的目录结构。使用辅助角色时,我也遇到了同样的问题。
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="AzureSourceDirectoryTest" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
<WebRole name="TestWebRole1" vmsize="ExtraSmall">
<Contents>
<Content destination=".">
<SourceDirectory path="../Base" />
</Content>
<Content destination=".">
<SourceDirectory path="../AdditionalFiles" />
</Content>
</Contents>
<Endpoints>
<InputEndpoint protocol="http" port="80" name="Http" />
</Endpoints>
</WebRole>
</ServiceDefinition>
目录结构(基于树命令的输出,删除了bin和obj文件夹的内容):
│ AzureSourceDirectoryTest.sln
│
├───AdditionalFiles
│ connectionStrings.config
│
├───AzureSourceDirectoryTest
│ │ AzureSourceDirectoryTest.ccproj
│ │ AzureSourceDirectoryTest.ccproj.user
│ │ ServiceConfiguration.Cloud.cscfg
│ │ ServiceConfiguration.Local.cscfg
│ │ ServiceDefinition.build.csdef
│ │ ServiceDefinition.csdef
│ ├───bin...
│ └───obj...
│
├───Base
│ connectionStrings.config
│
└───TestWebRole1
│ TestWebRole1.csproj
│ TestWebRole1.csproj.user
│
├───bin...
├───obj...
└───Properties
AssemblyInfo.cs
答案 0 :(得分:0)
我不确定这个应该做什么。实际上应该包含哪个connectionStrings.config?我的猜测是它会同时从两个不同的位置复制,一个由于并发访问而失败。我可以问你为什么要复制同一个文件两次吗?