Asp.net mvc 3 如何独立扩展asp.net mvc应用程序和wcf服务

Asp.net mvc 3 如何独立扩展asp.net mvc应用程序和wcf服务,asp.net-mvc-3,wcf,iis-7,azure,iis-6,Asp.net Mvc 3,Wcf,Iis 7,Azure,Iis 6,我有ASP.NET web应用程序和1个wcf web服务。我想将它们部署到Azure,以便它们能够独立地向外扩展/向上扩展。i、 e.我可以给mvc应用提供小VM,给wcf服务提供大VM和更多实例。另一个要求是,我需要对web应用程序使用https。但是,我不希望从mvc应用程序到wcf服务使用https,这会导致不必要的加密/解密 我可以将每个应用程序和wcf服务部署到Azure上的单个托管服务,以便它们可以独立扩展。(因此,如果3个应用程序+1个wcf服务在Azure上有4个托管服务),为

我有ASP.NET web应用程序和1个wcf web服务。我想将它们部署到Azure,以便它们能够独立地向外扩展/向上扩展。i、 e.我可以给mvc应用提供小VM,给wcf服务提供大VM和更多实例。另一个要求是,我需要对web应用程序使用https。但是,我不希望从mvc应用程序到wcf服务使用https,这会导致不必要的加密/解密

我可以将每个应用程序和wcf服务部署到Azure上的单个托管服务,以便它们可以独立扩展。(因此,如果3个应用程序+1个wcf服务在Azure上有4个托管服务),为了避免mvc和wcf之间使用https,我尝试使用内部端点。不幸的是,似乎只有一个主机服务支持内部端点

为了避免mvc和wcf之间使用https,唯一的方法是部署mvc应用程序和wcf多功能主机服务。但是,这样就失去了独立扩展的可能性

总而言之:

  • 如果每个mvc应用程序和wcf服务部署到自己的托管服务,我可以实现独立的扩展要求,但是,我无法避免mvc应用程序和wcf服务(https)之间不必要的加密/解密

  • 如果在一个主机服务中部署应用程序和wcf服务。我可以使用应用程序和wcf之间的内部端点来避免https加密/解密。但是,您失去了独立扩展的可能性


  • 我想知道是否有一种方法可以实现这两个目标。非常感谢您的帮助。

    您可以根据角色而不是服务进行独立扩展。因此,将WCF部署为服务中的另一个角色应该可以正常工作。但是,如果WCF需要有外部端点,或者如果WCF通过内部端点使用,则必须考虑端口

    查看AzureWatch@-将让您在几分钟内独立完成两个角色的自动缩放,而无需任何代码更改


    HTH

    您可以在托管服务中拥有多个web角色,这些角色可以单独扩展,并在MVC和WCF位之间使用内部端点。或者,如果WCF服务不需要公开访问,您可以以工作角色使用ServiceHost将其公开为TCP端点…感谢您的回复。对不起,可能我使用的术语不太正确。我知道,通过部署具有不同web角色的WCF和web应用程序,可以独立扩展。然而,若我这样做,这意味着应用程序和wcf服务只会和端口不同。e、 g.app1:xyz.cloudapp.com:80,app2:xyz.cloudapp.com:81,服务:xyz.cloudapp.com:82。然而,如果我需要app1和app2的https(端口443),据我所知,这是不可能的。。。此外,wcf需要同时具有输入端点和内部端点。内部端点使用http与mvc应用程序通信,以避免不必要的加密/解密。输入端点仍然需要使用https,以防直接从internet访问服务。总之,mvc应用程序和wcf都需要支持https。是否可以在一个端口443上实现..?听起来您需要在外部公开WCF服务。即使端口不是443,也可以在端点上使用SSL安全性。这对你有用吗?是的。mvc应用程序需要有https。wcf既有https(外部使用的输入端点),也有http(内部端点)。可能它应该使用443以外的端口。在您之前的评论中,您提到了负载平衡,如果我将有多个应用程序和wcf服务实例,此解决方案是否会对负载平衡产生任何影响?谢谢我建议在一个角色上为网站设置常规http:80/https:443,在另一个角色上为WCF在443以外的端口上设置安全的公共端点。这样,您将拥有一个跨所有服务器平衡的公共WCF负载,并独立于MVC站点进行扩展