ASP.NET AJAX负载平衡问题

ASP.NET AJAX负载平衡问题

ASP.NET AJAX Load Balancing Issues

对于在App_Code文件夹中具有代码并使用硬件负载平衡器的任何人来说,这都是一个问题。 确实可以将硬件负载平衡器设置为粘性会话以解决该问题,但是在理想情况下,我希望该功能关闭。

当App_Code文件夹中的文件未对站点进行预编译时,iis将为这些文件生成随机文件名。

1
2
server1"/ajax/SomeControl, App_Code.tjazq3hb.ashx"
server2"/ajax/SomeControl, App_Code.wzp3akyu.ashx"

因此,当用户发布页面并将其转移到其他服务器时,将无法进行任何操作。

有人对此有解决方案吗? 我可以更改为预编译的网站,但是我们的质量检查部门将无法推广已更改的文件。


两台服务器上的节点是否设置为相同的值?

您可以覆盖web.config中的machine.config文件进行设置。这需要匹配,否则您可能会遇到类似这样的奇怪情况。


好的,首先要做的是... MachineKey是对的。在所有负载平衡计算机上,绝对应将其设置为相同。我不记得它会影响到的所有事情,但是无论如何都要做。

第二,继续并预编译该站点。实际上,只要页面有.cs文件被重新编译,您实际上仍然可以推出新版本。棘手的是将app_code文件编译成单个dll。但是,如果在那里进行了更改,则可以上载新的dll,再次一切都可以。

为了使事情变得更加简单,请启用"使用的固定命名和单页程序集"选项。这样可以确保每个编译中的名称都相同,因此您只需测试然后替换更改后的.dll文件即可。

综上所述,您不应该再遇到任何问题。该请求将发送到IIS,IIS将仅提供该页面并根据需要进行编译。如果后面的代码在每台计算机上都不同,那么实际上没关系,代码是相同的,并且该计算机将引用其自己的代码。实际的请求/回传不知道或不关心任何一个。我上面说的所有内容都应该有助于简化操作,但是无论如何它都应该起作用……所以这可能是一个机器钥匙问题。


您的负载均衡器是否支持粘性会话?启用此功能后,平衡器将在特定时间窗口内一遍又一遍地将相同IP路由到同一服务器。这样,来自一个客户端的所有请求(AJAX或其他方式)将始终命中群集/场中的同一服务器。


我认为asp.net模型对加密和特定于计算机的存储有相当大的依赖性,因此我不确定它是否可以避免会话使用粘性IP。

我不了解ASP.NET AJAX(我改用MonoRail NJS方法),但是会话状态可能对您来说是个问题。

您必须确保会话状态是可序列化的,并且不要使用InMemory会话。您可能需要运行ASP.NET会话状态服务器,以确保整个前端服务器场都使用相同的会话存储。在这种情况下,会话必须是完全可序列化的(这就是为什么会话中没有任何对象是首选的原因,您必须始终使用ID,我敢打赌MS在进行AJAX库开发时会坚持这一限制)


如果您的质量检查部门可以提升整个库,则可以将app_code中的所有内容移至外部类库。我认为,如果您找不到方便或可忍受的切换到预编译站点的方式,那么您就会陷入棘手的会议。


似乎仅适用于ViewState加密。它不会影响自动编译的程序集的文件名。


确实可以将硬件负载平衡器设置为粘性会话以解决该问题,但是在理想情况下,我希望该功能关闭。


如果它是硬件负载平衡器,那么您就不会有问题,因为众所周知的就是请求URL,服务器可以在其中编译请求的页面并为其提供服务。

我能想到的唯一问题可能是会话和视图状态。


推荐阅读

    linux硬件监控命令?

    linux硬件监控命令?,工具,系统,状态,信息,短信,平均,情况,网络,时间,分析,Lin

    linux命令添加文件?

    linux命令添加文件?,工作,简介,数据,系统,文件,命令,操作,文件名,内容,终端,l

    linux文件输入命令?

    linux文件输入命令?,工作,系统,地址,信息,工具,位置,命令,设备,发行,首开,lin

    linux文件中剪切命令?

    linux文件中剪切命令?,位置,系统,工作,命令,发行,连续,标准,终端,文件,目录,l

    linux存储文件命令?

    linux存储文件命令?,系统,地址,工作,命令,软件,电脑,标准,底部,信息,文件,lin

    linux保存命令文件?

    linux保存命令文件?,系统,状态,命令,文件,第一,管理,电脑,模式,编辑,终端,lin

    linux私有文件命令?

    linux私有文件命令?,系统,工作,工具,命令,设备,文件,目录,位置,不了,情况,Lin

    删除linux文件命令?

    删除linux文件命令?,名称,不了,文件夹,命令,文件,目录,方法,指令,子目录,选

    linux文件录入命令?

    linux文件录入命令?,系统,命令,网络,标准,时间,密码,名字,管理,文件,文件夹,L

    文件复制命令linux?

    文件复制命令linux?,系统,地址,文件,目录,位置,工具,命令,目标,文件名,源文

    linux命令移除文件夹?

    linux命令移除文件夹?,命令,文件夹,通用,不了,数据,名称,档案,系统,文件,目

    linux文件倒序命令?

    linux文件倒序命令?,地址,工作,管理,标准,命令,基础,系统,数据,最新,代码,lin

    在linux文件后加命令?

    在linux文件后加命令?,系统,工作,命令,工具,电脑,基础,管理,情况,第一,简介,L

    linux命令删除文件夹?

    linux命令删除文件夹?,系统,名称,环境,文件夹,不了,命令,文件,数据,档案,目

    linux命令看文件编码?

    linux命令看文件编码?,状态,系统,文件,工具,名称,数据,命令,格式,汉字,以下,L

    linux编辑文件的命令?

    linux编辑文件的命令?,系统,地址,工作,状态,命令,电脑,信息,管理,目录,终端,l

    linux命令行关掉文件?

    linux命令行关掉文件?,地址,状态,工作,系统,信息,命令,名字,电脑,编辑,文件,l

    linux命令穿件文件夹?

    linux命令穿件文件夹?,系统,名字,密码,名称,首次,命令,文件夹,文件,不了,时

    linux检测硬件的命令?

    linux检测硬件的命令?,信息,系统,检测,工具,第一,数据,设备,分析,实时,百度,