偶尔在打开集团 ERP 时会提示升级错误,详细错误内容如下:
在升级过程中发生了某些错误,详细信息是远程服务器返回错误: (500) 内部服务器错误。
如图:
下面分析可能的原因:
- 因为是远程服务器返回的错误,并且状态码是 500,所以很确定是升级服务器的 web 网站代码发生了异常。
- 查看服务器 IIS 日志,找到异常详细错误信息如下图。
- 于是可以定位到异常发生的代码为 FileUpdateServices.UpdateHandler.ProcessRequest() 方法,方法里面在获取 datatable 时异常了。
- 查看自动升级源代码,发现想要的 datatable 是从 xml 文件中读取到 ds 中然后获取,在这里发生异常,xml 没有加载到 ds 中。
分析结论:
1.首先自动升级网站从 xml 文件转 dataset 时有时加载的 dataset 为 null,没有进行判断造成空对象引用异常。
2.猜测多人同时访问时 xml 读取可能被占用造成加载不到 dataset 中。