1

这是我第二次部署到 Azure。首先是一个带有数据库的简单 MVC4 网站,我通过 git 部署了它。像魅力一样工作。

现在我得到了以下内容: 一个包含三个项目的解决方案。

  • Web -> 哪个是 MVC4 前端
  • 模型 -> 包含模型和数据库上下文
  • 后端 -> 用于数据管理的 MVC4 项目

所有项目都是 MVC4(不知道如何更好地管理 Models 项目)。在我的模型项目中,我正在运行代码适配迁移。后端在虚拟目录中运行:localhost:80/Backend(在 localhost 上完美运行) Web 和 Backend 项目都引用了 Models 项目。

文件夹结构:解决方案文件夹包含: Web / Models / Backend / MySolution.sln

第一次部署时,我在 Projects 文件夹中创建了一个 git repo(因为它是一个项目)。现在我的仓库在解决方案文件夹中。

我还在后端上传文件并通过以下路径将其移动到另一个项目(Web):

Directory.GetParent(HttpContext.Current.Server.MapPath("~")).ToString() + DirSeperator + "Web" + DirSeperator + "Store" + DirSeperator;

这会在 Azure 上出现问题吗?

所以我现在的问题是,我如何部署这个解决方案?


我在 Azure 中创建了一个带有源代码控制的网站,并向其中添加了一个 SQL 数据库。

我已设法将解决方案推送到 Azure,但在 Azure 上有消息

找到解决方案......没有可部署的项目。而是部署文件。

现在。


关于这个问题,你有什么好的教程吗?

我做错了吗?(我认同)

我对 ASP.NET 和 Azure 比较陌生,所以我有点难以理解。

谢谢,托比

4

2 回答 2

1

后续编辑:我现在看到,这与配置 2 个项目部署有关。您将需要创建部署脚本

我没有做研究,但看看这些帖子:

http://blog.amitapple.com/post/38419111245/azurewebsitecustomdeploymentpart3

http://kellyhpdx.wordpress.com/2012/04/11/deploying-multiple-web-applications-to-a-single-azure-instance-and-applying-web-config-transforms-correctly/

于 2013-02-09T22:35:43.810 回答
0

我设法解决了我的问题。 抱歉,我正在回答我自己的问题 - 希望这不会冒犯任何人。

Azure 网站无法实现我想要实现的目标,而 Web 角色则无法实现。如在CloudCoverStructureTooBig上所见。

因此,我在 Visual Studio 中创建了一个新的 Azure 云应用程序(由 Azure 工具提供),具有默认的 Web 角色,这是我的 Web 前端项目。我已将一个名为“后端”的 VirtualApplication 添加到 Web 角色,并将物理目录设置为我的后端项目路径。然后我添加了一个 VirtualDirectory“存储”,我可以从两个项目中访问它以进行文件上传。

我的 WebRole 现在看起来像这样:

<WebRole name="MvcWebRole1" vmsize="ExtraSmall">
<Sites>
  <Site name="Web" physicalDirectory="[projectpath]">
    <VirtualApplication name="backend" physicalDirectory="[projectpath]">
    </VirtualApplication>
    <VirtualDirectory name="store" physicalDirectory="[projectpath]">
    </VirtualDirectory>
    <Bindings>
      <Binding name="Endpoint1" endpointName="Endpoint1" />
    </Bindings>
  </Site>
</Sites>
<Endpoints>
  <InputEndpoint name="Endpoint1" protocol="http" port="80" />
</Endpoints>
<Imports>
  <Import moduleName="Diagnostics" />
  <Import moduleName="RemoteAccess" />
  <Import moduleName="RemoteForwarder" />
</Imports>

我现在通过以下方式访问(读+写)商店:

HttpContext.Current.Request.MapPath("/Store" + DirSeperator);

代替

Directory.GetParent(HttpContext.Current.Server.MapPath("~")).ToString() + DirSeperator + "Web" + DirSeperator + "Store" + DirSeperator;

这在这两个项目上都非常有效。

所以,这个解决方案有效,我已经将它部署到生产中!

新出现的问题:

  • 网站使用git集成,但云服务不会(这对我的工作流程非常不利)。
  • 部署大约需要 30-45 分钟。圣...
  • 我不得不再次发布所有内容以激活远程访问和 WebDeploy 功能。我希望,WebDeploy 将节省部署更新的时间......因为每次我现在更新时,完整的解决方案都会在服务器上被替换(在提到的时间跨度内)。
  • 有没有办法通过 FTP 访问数据?

再见

于 2013-02-15T09:31:11.453 回答