最近帮别人部署WebSite,本来以为没有什么的,结果部署两次出现两次错误,现记录下来以示提醒
1)部署第一台出现了Login error,刚开始还以为是没有把虚拟目录设置成Framework2.0,其实不然,原因是在项目里存在一个Login.aspx的page,对应的Login class 与 Framework2.0里的Login存在冲突,解决办法是将Login.aspx重命名成LoginPage.aspx。避免冲突。
2)部署第二台出现了database file is readonly 的error,原因是WebSeit使用的SQL Express 的连接字符串,其中是使用的是 AttachDbFilename方式来附加数据库文件。在加上硬盘的文件格式是NTFS,所以出现了访问权限的问题。在SQL Express 附加本地的数据库文件的时候,默认的是使用帐户是AspNet (2003 Newwork Service)来附加数据库文件,而附加到SQL Express里以后对数据库的访问权限则是以数据库文件所处的系统的文件访问权限定义的,也就说如果数据库文件本身被定义成只读,那么被附加到SQL Express中后,数据库的访问权限也就成为了Readonly。解决办法,重启IIS,然后设置数据库文件,加上AspNet账户的访问权限就可以了。
还有另外一种方式:在WebSite的Root folder 创建一个 app_offline.html,然后再次运行WebSeit,就可以了正常work了。