问题描述:因有多台Web前端,我将程序放到一台性能可靠的文件服务器上,将程序目录共享出来,然后配置各个前端Web服务器将IIS目录指定到网络路径,如\\{服务器}\{共享名}。如果我不采用这种方式,则需要将各台前端网站中的上传文件同步,使文件保持一致。而且一旦代码有更新,需要多台拷贝,很不便于维护。但却发现无论我如何切换访问账户,当前登录人始终显示为“domain\administrator”。关键环境配置:1、共享文件夹的共享权限为:Everyone完全控制,Users完全控制。2、共享文件夹的NTFS访问权限为:Everyone完全控制,Users完全控制。3、IIS中“连接为”对话框中,指定为"domain\administrator"访问文件。4、IIS验证为:集成Windows身份验证。5、网站Web.config中未添加<identity impersonate="false" />模拟身份节点。解决过程:1、我将“连接为”改为"test"账号,网站就始终显示登陆人为"test"。2、在“连接为”弹出框中,我将“在验证到网络目录的访问时,总是使用已经过身份验证的用户的凭据”钩上。再次访问网站会不停弹出用户名和密码输入框,输入正确也同样不停弹出提示,并且网站不能正常显示。3、我将集成Windows身份验证改为“基本身份验证”问题解决,当前登录身份可以随着账户切换而改变,但是切换后的身份不能传递给其它子站点,因为其它站点的身份验证方式都是集成Windows。TIP:我感觉问题应该是由客户端访问NTFS共享文件无权限导致的,但是我找不到解决方法,恳请各位给予帮忙,非常感谢!
如果您解决不了这个问题,能告诉我你们在多个web前端环境下是如何规避此类问题的吗,采取同步文件机制不完美,会有并发情况发生。