1. 目的:为了使文件数据便于管理,减少文件的复本数。
2. 实现方法:在网内做一台NAS服务器,所有的Web服务器都将网站主目录及虚拟目录指向NAS服务器上的相应位置。
3. 具体操作步骤
(1) IIS访问远程共享目录需要一定的权限,IIS的匿名用户没有这个权限,所以首先要建立一个新用户,但这个用户要与文件服务器 NAS Server上的用户名与密码完全一至,目的是为了当计算机重启了也可以正常的访问,原由就不用说了吧……
(2) 给新建的用户赋予相应的权限,将其加到 IIS_WPG组中即可
(3) 配置远程共享目录的访问权限,主要是利用 Microsoft .NET Framework 2.0 配置工具;当然如果是.NET Framework 1.1的程序,就要用1.1的配置程序进行设置。具体步骤如下:
运行如下命令:
Drive:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\caspol.exe -m -ag 1 -url "file:////\\computername\sharename\*" FullTrust -exclusive on
最好是将上面的命令存在BAT文件中,可以很快的执行
或者是下面的步骤:
a. 开始 -> 控制面板 -> 管理工具 -> Microsoft .NET Framework 2.0 配置
b. 进入如图1所示,在左侧的树列表中进入 运行库安全策略 -> 计算机 -> 代码组 -> All_Code
图1
c. 在All_Code点右键选择“新建”,出现创建代码组——标识代码组界面,如图2所示,键入代码组的名称,如 Shared Web Site,后进入下一步
图2
d. 代码组条件类型选择,我们选择URL,在URL中键入具体的共享文件所在位置,可以用通配符 * ,如图3所示
图3
e. 代码组的权限分配,选择所需要设置给上一步选择的类型的权限,在这里我们选择现有的权限中的 FullTrust 全完信任,如图4所示
图4
通过以上的设置,会在 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG 生成Security.config文件,如果是多台服务器进行设置同要样的内容直接将这个文件复制到相应的服务器即可
(4) 编辑注册表文件进行IIS及文件服务器的设置
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]
"MaxMpxCt"=dword:00002FFF #在文件服务器上配置用以限制同时连接到那个服务器的数量
"MaxMpxCount"=dword:00003FFF #在文件服务器上配置用以限制同时连接到那个服务器的数量
"MaxWorkItems"=dword:0000CFFF #指定一个文件服务器所能分配的接收缓冲区的最大数量,这个需要是MaxMpxCt的4倍
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters]
"MaxCmds"=dword:00000400 #允许从 IIS 服务器到文件服务器同时连接的 SMB 的数量
#缓存的文件的最大值(单位byte),默认256KB
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InetInfo\Parameters]
"MaxCachedFileSize"=dword:00080000
#是否启用文件缓存
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Inetinfo\Parameters]
"DisableMemoryCache"=dword:00000000
#是否启用静态文件的File Change Notification
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Inetinfo\Parameters]
"DoDirMonitoringForUNC"=dword:00000000
#是否启用动态文件的File Change Notification
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\ASP\Parameters]
"EnableChangeNotificationForUNC"=dword:00000000
#配置静态文件的Last-Modified Time检查间隔时间(秒)
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Inetinfo\Parameters]
"FileAttributeCheckThreshold"=dword:00000005
#类似FileAttributeCheckThreshold,配置ASP Scripts文件的Last-Modified Time检查间隔时间(秒)
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\ASP\Parameters]
"FileMonitoringTimeoutSeconds"=dword:00000030
#IIS服务器上用于缓存的内存大小(单位MB)
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InetInfo\Parameters]
"MemCacheSize"=dword:00000100
#缓存的文件的过期时间
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InetInfo\Parameters]
"ObjectCacheTTL"=dword:0000003C
#[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]
#"NtfsDisableLastAccessUpdate"=dword:00000000
#"Disablelastaccess"=dword:00000000
(5) 下载压缩文件,解开后在 Web Server上运行 CacheProblemAnwser.bat
以上这些参数设置过后,在IIS端需要重新启动IIS及 WorkStation 服务,在文件服务器端则需要重启计算机方可生效
OK,经过以上的设置大功告成了。
在配置IIS时,只需要选择另一台计算机上的共享,进行设置IIS
还可以参考
使用在UNC服务器上的远程存储内容及NAS设备部署和配置 Internet信息服务(IIS) 6.0
http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/webapp/iis/remstorg.mspx
"System.Security.SecurityException: Security error" error message when the virtual directory points to a remote share in ASP.NET
IIS 设置