Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为SignalR ASP.NET项目选择正确的项目类型和Windows Azure服务_Azure_Visual Studio 2012_Signalr_Azure Storage_Azureservicebus - Fatal编程技术网

为SignalR ASP.NET项目选择正确的项目类型和Windows Azure服务

为SignalR ASP.NET项目选择正确的项目类型和Windows Azure服务,azure,visual-studio-2012,signalr,azure-storage,azureservicebus,Azure,Visual Studio 2012,Signalr,Azure Storage,Azureservicebus,我正在开发我的ASP.NET 4.5 C#+SingnalR web应用程序,该应用程序将托管在Windows Azure上 我才刚刚开始,对WindowsAzure完全陌生。我报名参加了为期30天的免费试用。我正在Visual Studio 2012中开发我的应用程序 我的问题是,为了在Windows Azure上开发和发布我的特定应用程序,我需要选择哪些可用服务。如果我打算使用SignalR和Windows Azure Service Bus构建实时应用程序,我需要使用哪种基础架构 我知道我

我正在开发我的ASP.NET 4.5 C#+SingnalR web应用程序,该应用程序将托管在Windows Azure上

我才刚刚开始,对WindowsAzure完全陌生。我报名参加了为期30天的免费试用。我正在Visual Studio 2012中开发我的应用程序

我的问题是,为了在Windows Azure上开发和发布我的特定应用程序,我需要选择哪些可用服务。如果我打算使用SignalR和Windows Azure Service Bus构建实时应用程序,我需要使用哪种基础架构

我知道我需要在负载平衡器后面扩展app+Signal机器。我还知道我需要将SignalR与Windows Azure服务总线连接

我应该在Visual Studio中创建什么类型的项目我应该从Windows Azure中选择什么类型的服务。我知道有“网站”、“虚拟机”和“云服务”——但我不知道哪一个适用于我的特定应用程序。
谢谢。

看一看-很可能,您希望开发web应用程序并将web应用程序部署到Azure云服务。云服务在负载平衡器后面运行任意数量的实例,而不进行任何配置,只将CNAME记录指向云服务。对于信号器部分,为了使其具有可扩展性,您将希望使用Azure服务总线中继作为您的信号器实现的背板(同样,负载平衡,而无需大量询问配置/维护)。参考示例是一个良好的开端。

关于项目类型:

网站基本上是一种精简的云服务,它让你的工作量大大减少——作为开发人员,你基本上没有多少选择,但可以从更简单的编程模型中获益。你不能用云服务做所有你能做的事情,但是如果你的应用不需要网站不能提供的东西,那么你最好选择这个

云服务是经典/默认项目类型。您拥有Azure API的所有功能,但除了Web站点之外,还必须在较低的级别上工作我推荐这种类型,除非你的应用程序“简单”到足以应付网站——不管是不是这样,只有你可以通过仔细查看每种项目类型的功能和限制来回答

虚拟机就是:云中的虚拟机驱动器。您可以选择云服务使用的操作系统以外的操作系统,例如Windows XP或某些Linux dist,然后安装您需要的任何服务,例如Apache。在我看来,只有当你需要一个特定的操作系统或服务时,你才应该选择这个。虚拟机的缺点是您负责更新和维护它们,而云服务会自动更新(Windows更新等)


编辑:有关云服务项目类型的更多信息,以防您决定使用:

云服务支持两种角色:工作者角色和Web角色。您可以通过增加某个角色的数量来扩展应用程序,例如,您可以创建一个承载您的SignalR服务的角色,然后如果您监视不断增加的负载,则可以增加角色实例的数量。Azure负载平衡器会自动将所有传入请求分发到您为每个角色定义的公共端点,因此您不必自己进行负载平衡(不过您必须使用无状态会话)

从编程的角度来看,工作者角色基本上是一个类,它包含一个OnStart、OnStop和一个Run方法,该方法需要一直运行到角色实例停止为止。该角色的作用完全取决于您,例如,您可以在OnStart方法中启动信号器服务,并在Run方法中检查请求

Web角色与Worker角色类似,但与ASP.Net一起提供。OnStart、OnStop和Run方法仍然存在,但您不需要使用它们,而是可以使用ASP.Net事件(如应用程序启动)

如果你想在你的应用程序中使用ASP.Net,你应该选择一个Web角色。您仍然可以将所有业务逻辑放在一个工作者角色中,并让您的Web角色将请求委托给它(例如通过Azure队列),这样您就可以独立地扩展这两个角色


您可能还对感兴趣,或者更具体地说,对感兴趣。简言之,Owin是一个抽象层,它使您的web项目技术独立—例如,您可以使用IIS/ASP.Net,然后根据需要切换到自托管解决方案。Katana支持SignalR,因此您也可以将SignalR直接作为辅助角色托管,并完全跳过ASP.Net(通过自己实现JavaScript客户端)。

Thansk获取您的答案。我读过这篇文章并观看了一些有关SingnalR的Microsoft视频,但他们的开发人员不建议使用背板解决方案,他们建议使用P2P连接,在连接的机器之间发送消息。我还没有找到任何关于使用SignalR和Azure Backplane进行基准测试的信息,所以如何确保它能够很好地扩展?