在 AWS 上附加到我的 Web 根目录的额外文件夹

Posted

技术标签:

【中文标题】在 AWS 上附加到我的 Web 根目录的额外文件夹【英文标题】:Extra folder appended to my web root on AWS 【发布时间】:2013-09-14 04:52:17 【问题描述】:

我突然遇到了一个问题。我最近在 AWS 弹性 beasnstalk 实例上重新部署了我的 .net 应用程序,现在在我的 Web 根目录中附加了一个额外的段。

现在我的 URL 结构如下所示:

http://domain.com/ProjectName.Web_deploy/default.aspx

我没有对我的项目或 AWS 配置进行任何更改。这可能是什么原因造成的?

当我登录到 RDP 实例时,我在 IIS 根目录上找到了一个 web.config,其中包含一些规则,我在其中找到了 project_name.Web_deply。

我没有使用任何 FTP 或 AWS 控制台来更新我最近的代码,而是使用 AWS explorer for Visual Studio 2010,它在内部使用 git。

我在服务器上使用 windows server 2012 和 sql server 2008。

【问题讨论】:

您是否尝试过在没有 AWS 资源管理器的情况下使用 AWS 控制台进行部署?如果是,是否会出现同样的问题,或者您的应用程序是否正常工作? @TarunMathur:是的,我尝试过使用 AWS 控制台。我创建了一个包 zip 并使用 AWS 控制台进行了部署,但问题仍然存在。 你是否在你的 zip 中包含了那个额外的文件夹,如果是的话,你可以直接包含你的项目页面和文件夹。如果可能,请您分享您的根文件夹路径。 【参考方案1】:

似乎在 Visual Studio 2012 和 2010 的最新更新中,VS 从项目属性页面(要在目标服务器上使用的 IIS 网站/应用程序名称)中删除了这些配置选项。 相反,您可以通过编辑 .csproj 文件直接指定网站/应用程序名称。 您可以添加到适当的元素。

如果您希望它适用于所有配置和平台并在根目录部署,您可以将其包含在元素中,即

<PropertyGroup>
        .....
        <DeployIisAppPath>Default Web Site/</DeployIisAppPath>
</PropertyGroup>

或者对于 Release|AnyCPU 构建目标和你自己的虚拟目录:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
        <DeployIisAppPath>Default Web Site/MyVirtualDirectory</DeployIisAppPath>
</PropertyGroup>

希望这会奏效

【讨论】:

【参考方案2】:

当应用程序部署到虚拟目录时,实例上的 Elastic Beanstalk 工具将在根级别创建一个 web.config,它使用 URL 重写规则将根的请求重定向到虚拟目录。

在 Visual Studio 2010 中,您可以打开项目属性,选择 Package/Publish Web 选项卡,然后在该选项卡上找到标有 IIS Web Site/application name to use on目标服务器

默认情况下,该值将是一个虚拟目录,如Default Web Site/MyApplication_deploy。如果要将应用程序部署到根目录,请将其更改为 Default Web Site/ 并重新部署。

【讨论】:

正如您所说,在目标服务器上没有标记为 IIS 网站/应用程序名称的选项。 在项目属性中。 @Naman:微软似乎在最新版本中删除了这个选项。

以上是关于在 AWS 上附加到我的 Web 根目录的额外文件夹的主要内容,如果未能解决你的问题,请参考以下文章

如何查看提交到我的 AWS Web 服务的请求?

如何使用 EC2 网站设置 Cloudfront

在 aws appsync 解析器中添加额外字段

在aws appsync解析器中添加额外字段

如何使用 docker-compose.yml 和 ecs-cli 将 EBS 卷附加到我的容器

我用eclipse开发了一个web项目,如何发布到我的服务器上?