【问题标题】:Errors when packaging Azure project if Content SourceDirectory contain similar files如果 Content SourceDirectory 包含类似文件,则打包 Azure 项目时出错
【发布时间】:2011-10-28 23:10:32
【问题描述】:

我正在尝试使用服务定义文件中的 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 中运行。我正在做的第一步是简单地包装现有功能,以便它可以在 azure 中简单地运行。此外,原始代码库正在迅速变化,因此我想保持我的包装自定义非常独立,以避免不得不不断处理合并等问题。到目前为止,我一直在通过一些复杂的 powershell 构建脚本来处理这个问题。

作为参考,下面是我正在使用的 ServiceDefinition 文件,以及我的解决方案的目录结构。我在使用 Worker Role 时也遇到了同样的问题。

<?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>

以及目录结构(基于 tree 命令的输出,删除了 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

【问题讨论】:

    标签: azure


    【解决方案1】:

    我不确定这应该做什么。实际上应该包含哪个 connectionStrings.config ?我的猜测是它同时从两个不同的位置复制,一个由于并发访问而失败。请问为什么要复制同一个文件两次?

    【讨论】:

    • 我所处的场景是我正在包装一个现有应用程序以在 Azure 中运行。因此,我试图通过以下方式将我的修改与实际应用程序分开:1)将基本应用程序复制到 Web 角色中 2)将我的添加复制到 1 中复制的内容之上 当简单地通过 Visual Studio 进行调试时,上述工作正常预期(尽管编译器警告说 connectionstrings.config 文件已被替换)只有在发布/部署时,我才会收到此访问被拒绝错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 2014-07-26
    • 1970-01-01
    • 2012-02-03
    • 2022-10-01
    相关资源
    最近更新 更多