Asp.net 将多项目MVC4解决方案部署到Azure失败

Asp.net 将多项目MVC4解决方案部署到Azure失败,asp.net,asp.net-mvc,git,deployment,azure,Asp.net,Asp.net Mvc,Git,Deployment,Azure,这是我第二次部署到Azure。 首先是一个带有数据库的简单MVC4网站,我通过git部署了它。工作得很有魅力 现在我有以下几点: 包含三个项目的解决方案 Web->哪个是MVC4前端 模型->包含模型和数据库上下文 后端->用于数据管理的MVC4项目 所有项目都是MVC4(不知道如何更好地管理Models项目)。 在我的模型项目中,我正在运行代码第一次迁移。 后端正在虚拟目录中运行:localhost:80/backend (在本地主机上可以完美地工作) Web和后端项目都引用了Models

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

现在我有以下几点: 包含三个项目的解决方案

  • Web->哪个是MVC4前端
  • 模型->包含模型和数据库上下文
  • 后端->用于数据管理的MVC4项目
所有项目都是MVC4(不知道如何更好地管理Models项目)。 在我的模型项目中,我正在运行代码第一次迁移。 后端正在虚拟目录中运行:localhost:80/backend (在本地主机上可以完美地工作) Web和后端项目都引用了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比较陌生,所以我有点难以理解

谢谢,
Tobi

后续编辑:我现在明白了,这与配置2个项目部署有更多关系。您将需要创建部署脚本

我还没有完成研究,但看看这些帖子:


后续编辑:我现在明白了,这与配置2个项目部署有更多关系。您将需要创建部署脚本

我还没有完成研究,但看看这些帖子:


我已经设法解决了我的问题。 对不起,我在回答我自己的问题-希望这不会冒犯任何人

我想要实现的不是Azure网站,而是Web角色。 从这里一直看到

因此,我在VisualStudio中创建了一个新的Azure云应用程序(由Azure工具提供),其中包含一个默认的Web角色,这是我的Web前端项目。 我已经向Web角色添加了一个名为“backend”的VirtualApplication,并将physicalDirectory设置为我的后端项目路径。 然后我添加了一个VirtualDirectory“store”,我可以从两个项目中访问它来上传文件

我的Web角色现在看起来像这样:

<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>
而不是

Directory.GetParent(HttpContext.Current.Server.MapPath("~")).ToString() + DirSeperator + "Web" + DirSeperator + "Store" + DirSeperator;
这对两个项目都非常有效

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

新出现的问题:

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

再见

我已经设法解决了我的问题。 对不起,我在回答我自己的问题-希望这不会冒犯任何人

我想要实现的不是Azure网站,而是Web角色。 从这里一直看到

因此,我在VisualStudio中创建了一个新的Azure云应用程序(由Azure工具提供),其中包含一个默认的Web角色,这是我的Web前端项目。 我已经向Web角色添加了一个名为“backend”的VirtualApplication,并将physicalDirectory设置为我的后端项目路径。 然后我添加了一个VirtualDirectory“store”,我可以从两个项目中访问它来上传文件

我的Web角色现在看起来像这样:

<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>
而不是

Directory.GetParent(HttpContext.Current.Server.MapPath("~")).ToString() + DirSeperator + "Web" + DirSeperator + "Store" + DirSeperator;
这对两个项目都非常有效

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

新出现的问题:

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

Ciao

请提供更多信息:您如何重定向程序集?您是否为您的项目创建了可部署依赖性文件夹?我甚至不知道什么是可部署依赖性文件夹:(对于Web和后端项目,我选择了“添加引用”在关联菜单中,选中“我的模型项目”。我现在只做了这些。好的,如果右键单击解决方案资源管理器中的MVC项目文件,您可以选择“添加可部署的依赖项”。这些dll不包括在IIS.net V 4或4.5中,通常需要复制以进行部署。但不要完全关注这一点。部署到Azure IN包含许多检查点:例如重定向程序集,可能添加依赖项,等等。请通读我所包含的指南。从那里,希望您能集中到特定的问题。添加可部署依赖项不再适用于VS2012(因此我找不到该按钮),请看这里:我已经阅读了前3篇指南,但只有第4篇似乎有帮助。我将尝试一下。我不理解