Tag: web farm

扩展ASP.NET应用程序

这是一个非常广泛的问题,但希望我能得到有用的提示。 目前我有一个在单个服务器上运行的ASP.NET应用程序。 我现在需要扩展以适应不断增加的客户负载。 所以我的计划是: 1)将ASP.NET和Web组件扩展到五个服务器上。 2)将数据库移动到服务器场。 我不相信我会对数据库有问题,因为就应用程序而言,它只是一个IP地址。 但是,我现在担心ASP.NET和Web层。 我已经担心的一些问题: 最简单的模型是仅实现一个负载均衡器,它会以循环方式将请求分配给五个服务器中的每个服务器吗? HTTPS和SSL连接是否有任何问题,现在每次发出请求时它们都可以在不同的物理服务器上终止? (例如,表现?) 是否有关于通过cookie进行会话维护(登录)的问题? 我的猜测是否定的,但无法解释为什么…… 😉 会话数据本身(存储服务器端)是否有任何问题? 显然,我需要在服务器之间复制会话状态,或以某种方式强制请求只转到单个服务器。 无论哪种方式,我在这里看到一个问题……

在多个服务器和子域上设置持久性表单身份validation

我正在尝试跨多个服务器和子域设置表单身份validation。 我为每个应用程序设置了静态机器密钥,如下所示: …我的表单身份validation配置为每个应用程序相同: 我也试过在我的域名前加上一段时间,因为我看到一些人建议,但这也不起作用。 这在我的本地计算机上运行正常,在IIS中为每个子域设置了单独的站点。 它也可以在我们的开发服务器上运行,所有站点仍然驻留在一台机器上。 但是,当我部署到临时环境时,跨域身份validation将停止工作。 在该环境中,我在单个服务器上运行主站点(发生登录的位置),在两个负载平衡的服务器上运行辅助站点(我的身份validation应该保留的位置)。 所有这些都在Windows 7(本地)或Server 2008 R2(开发和登台)上的IIS 7下运行。 我通过使用MachineKey.Encode在主站点上编码字符串并使用MachineKey.Encode在辅助服务器上解码结果来validation机器密钥是相同的MachineKey.Decode. 我还validation了.SHAREDAUTH cookie是通过检查Firefox和Chrome报告的请求标头,以及将调试器挂钩到Application_BeginRequest和Application_AuthenticateRequest.来传递给请求中的第二个应用Application_AuthenticateRequest. 我可以在Application_BeginRequest执行期间看到cookie,但是当调用Application_AuthenticateRequest时它就消失了。 从我可以收集的内容来看,这似乎意味着身份validation票证的反序列化失败,但我无法弄清楚为什么在多服务器环境中可能发生这种情况,而不是单个服务器环境,除了不同的机器密钥,我已经证实并非如此。 我还设置了自定义MembershipProvider和RoleProvider,并且这些工作在每个站点上都可以独立工作。 我错过了什么?

获取HMAC的当前MachineKey或等效值(在Web场中)

我正在使用HMACSHA256在Web场环境中进行消息身份validation。 在web-farm中,每台机器都有相同的机器密钥,因此ViewState可以跨机器工作,但是,我需要进行跨机器的HMAC消息认证,所以我认为由于所有机器都使用相同的机器密钥,因此应该是一种从中导出密钥以用作HMAC密钥的方法。 我注意到在.NET 4.0中有MachineKey类,但是,我仍然坚持使用.NET 3.5 ,这对我来说是不可用的。 有没有办法在不生成自己的机器的情况下获得在所有机器上都相同的排序键,以便在ASP.NET 3.5环境中使用? 编辑 我实际上并不需要机器密钥本身,只需要从机器密钥(或等效的)派生的validation密钥。