问题描述:
在虚拟机安装skylineGlobe server后,进入主页时出现以下问题,提示信息为“HttpException (0x80004005): 请求已超时。”错误。
继续排查日志,在C:\inetpub\wwwroot\SG\log.txt中发现以下错误信息,显示数据库无法初始化。
19/10/2020 21:40:22:821 --->[Error] *** Error while reading last update record from Catalog DB *** Error while reading last update record from Catalog DB
System.Exception: CatalogDB EXCEPTION: Begin failed with SQL exception
在 Catalog.Model.CatalogDB.ExecuteStatelessSession(Action`1 action)
在 Catalog.Model.CatalogDB.GetTableDirect[T](Int64 fromId)
在 Catalog.Model.CatalogDB.DoTableUpdates(Object obj)
初步问题情况基本已判断清晰,是数据库连接问题导致的系统无法访问。
skylineGlobe server使用的是SQLite数据库,在SkylineGlobeServerConfiguration文件夹下会存放一个catalog.db的数据库文件。
导致此类问题的原因可能有两种:
1、SQLite的驱动问题,与asp.net的版本不对应,导致无法连接数据库文件;
2、文件权限问题,无法访问数据库文件。
解决方法:
为了验证是否是SQLite的驱动问题驱动问题,对skylineGlobe server进行了重装,按照skylineGlobe server安装手册中的要求将附加软件调整为官方要求。
重装过程中发现以下问题:(第一次安装skylineGlobe server忽略了该问题)
The application pool user account "TIS APPPOOL\SGAppPool" does not have the necessary permsiong to the configuration database folder.Add Modify permission and click 'Retry' or click 'Ignore' to complete installation without adding permisions at this time.To abortinstalation,click Cancel.
#翻译# 应用程序池用户帐户“TIS APPPOOL\SGAppPool”没有配置数据库所需的权限文件夹。添加修改权限并单击“重试”或单击“忽略”完成安装,而不在此添加权限时间到了中止安装,单击“取消”。
至此,发现真实原因就是数据库所在的文件夹没有访问权限。
处理方法如下:
1.右键SkylineGlobeServerConfiguration文件夹,进入【属性】-【安全】-【高级】
2.修改文件所有者,点击【更改】
3.将文件所有者修改为everyone,即服务器中任何账户都可访问。
4.修改完成后,访问http://localhost/SG即可进入SkylineGlobeServer,账号密码均为admin。