asp.net应用程序迁移到Load BalanceNAS环境

 

1.  权限控制

a)         Web ServerNAS加入同一个DomainAD)中,如DomainWeb。当然也可以使用所有Web ServerNAS的某个帐号的密码相同来进行欺骗。但是这样在管理上会比较复杂。

b)        在域中创建一个专用于asp.net程序运行的帐号(替代本地的ASPNET),如ASPNETOwner

2.  NAS目录与权限

a)         NAS上设置一个共享目录,如\\nas\upload,确保DomainWeb\ASPNETOwnerNAS的磁盘和共享都有写权限。

3.  Web Server目录与权限

a)         保证DomainWeb\ASPNETOwner对本地Web程序目录的访问权限。

b)        保证DomainWeb\ASPNETOwner可以写C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files目录。

c)        保证DomainWeb\ASPNETOwner可以写系统的临时目录(为满足一些特殊情况)。

4.  程序处理

a)         确保不使用Session(为了保证Load Balance算法的多样性),如果必须使用则可以使用State Server或数据库存储Session,但是强烈建议不要使用Session

b)        统一CookieViewStateKey(保证先后访问不同Web Server可以正常的解密ViewState),因为默认的是Key是各服务器自动生成。

c)        更改程序的web.config文件,设置Identity,使用DomainWeb\ASPNETOwner和密码运行asp.net程序。

 

 

 

Web.config相关部分示例:

 

<system.web>
 <machineKey
        validationKey= "250B3C89CB21F4F1422FF158A5B42D0E8DB8CB5CDA1742572A487D9401E3400267682B202B746511891C1BAF47F8D25C07F6C39A104696DB51F17C529AD3CABE"
        decryptionKey= "1A9BE8FD67AF6979E7D20198CFEA50DD3D3799C77AF2B72F"
        validation="SHA1"       
    />
    <identity impersonate="true" userName="DomainWeb\ASPNETOwner" password="Password"/>
   
    <httpRuntime maxRequestLength="10240"  useFullyQualifiedRedirectUrl="true" appRequestQueueLimit="500" executionTimeout="100"/>
</system.web>