托管机房用的是基于3层的网络。和公司局域网不同,不能进行磁盘映射和文件共享(网上邻居都看不到),自然文件服务就用不起了,我有2台服务器,A为WEB 服务器,B为文件服务器。A上的程序需要读取B上的少量文件然后显示给用户,文件总数巨大,有1亿左右,都是XML文件。
A为www.a.com,b为file.a.com.
方案一:通过B的IIS访问B上的文件。
1.直接在A上使用AJAX,通过WEB页面上的JS获取B的文件,这涉及跨子域访问的问题,传说可以使用document.domain设置可以成功,但我没有使用成功,如果有成功的请将方法贴出,谢谢。
2.鉴于跨子域不成功,在A上建立代理页面,通过代理页面访问B的IIS。这样可以解决问题,但代理页面压力巨大。基本所有访问都通过代理页面完成。
3.直接映射B的磁盘。使B成为A的网络驱动器,使用AJAX,通过WEB页面上的JS获取映射到A的文件。最初将文件存为XML文件的初衷就想将压力分散。用户直接访问静态文件。各位兄弟姐妹大家在遇到这个问题的时候如何处理的呢?希望大家指点。小弟感激不尽!

解决方案 »

  1.   

    A服务器上建立B上文件的索引,并建立常用文件的cache以减少对B的访问量。B服务器上可以用IIS建立文件访问的Web Service,如果觉得效率不够好可以自己建一个基于socket的文件访问传输服务器,也不难的。
      

  2.   

    你说:A上的程序需要读取B上的少量文件然后显示给用户如果只是少量的话,建议用 WebService,反正WS也是返回xml,你直接把xml文件找到返回即可。
      

  3.   

    既然都是XML文件...可以直接用一个IIS站点将整个XML文件所在的全部文件夹暴露出来...A服务器用URL即可访问...安全性则用IP地址或域名来限制只允许A服务器访问此站点...