在 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 根目录的额外文件夹的主要内容,如果未能解决你的问题,请参考以下文章