解决MS Office下载网站数据失败的问题
最近遇到在MS Excel中建立的Web Query在创建完成后过了一段时间(或关闭文件后再次打开文件并刷新数据)出现无法刷新的问题,点击刷新时报错如下:
无法下载您要求的信息。

这是一个很不友好的报错,从提示的信息来看,似乎是这个网站无法打开,然而在浏览器里打开却没有任何问题(采用的是匿名用户的身份验证)。
刚为了获得更多的错误信息,我查看了系统的事件日志,发现了这么一条记录:
Object reference not set to an instance of an object. at xxx.Global.Session_Start(Object sender, EventArgs e) at System.Web.SessionState.SessionStateModule.RaiseOnStart(EventArgs e) at...
看来是在访问这个网页的时候抛出了未处理的异常,于是我去查了网站的Global.asax.cs文件,果然在Session_Start方法中的确有访问对象
Request.Headers["Accept-Language"]的代码,因为Session会存在一段时间,所以Session_Start方法没有在刚建立完查询后刷新时就被调用,于是我在此方法中加了判断对象是否为空的代码后问题解决了。
总结:由此可见,使用Office从网站中提取数据时,如果访问的网页存在服务器端的异常,则会出现这类无法下载的报错,而不会显示异常的详细信息,需要到服务器端的事件日志中查看。在Office中建立查询的时候,访问网站跟打开浏览器访问网站是一样的效果,因此出现的行为和表现一致。而在建立完查询后,刷新网站获取数据时,相比浏览器,有些功能是被精简掉了,比如Headers["Accept-Language"]等在刷新网站数据时发送的Request请求中是不存在的,通过网络抓包软件Fiddler分析:
浏览器访问网站时的请求头信息:

Office软件通过Web Query访问网站时的请求头信息:

。看来以后建Web Query时需要注意,也希望此文对遇到同样问题的小伙伴有帮助和指导意义,同时欢迎高手提出意见和补充。
解决MS Office下载网站数据失败的问题的更多相关文章
- 解决 Android SDK下载和更新失败“Connection to https://dl-ssl.google.com refused."
缘由: 更新sdk,遇到了更新下载失败问题: Fetching https://dl-ssl.google.com/android/repository/addons_list-2.xml Fetch ...
- 【问题&解决】解决 Android SDK下载和更新失败“Connection to https://dl-ssl.google.com refused”的问题
缘由: 更新sdk,遇到了更新下载失败问题: Fetching https://dl-ssl.google.com/android/repository/addons_list-2.xmlFetche ...
- 解决Android SDK下载和更新失败问题
今天更新sdk报错如下: Failed to fetch URL http://dl-ssl.google.com/android/repository/addons_list-1.xml. 说dl- ...
- 解决Android SDK下载和更新失败的方法(Win系统) 和离线安装
http://jingyan.baidu.com/article/a3a3f811f370558da2eb8a94.html http://jingyan.baidu.com/article/636f ...
- 解决Ubuntu“下载额外数据文件失败 ttf-mscorefonts-installer”的问题 (转载)
解决Ubuntu“下载额外数据文件失败 ttf-mscorefonts-installer”的问题 发表于 2017-09-15 | 更新于 2018-04-29 | 分类于 Linux | 评论数: ...
- Genymotion虚拟镜像下载慢或者失败的解决办法
Genymotion虚拟镜像下载慢或者失败的解决办法 http://files2.genymotion.com/dists/8.0.0/ova/genymotion_vbox86p_8.0_18061 ...
- RubyGem 下载时连接失败的解决方法
RubyGem 下载 gem 包失败,有一定原因是 https 导致的. 搜索了很久,找到一个解决的方法. 1.下载 cacert.pem,也就是 curl 的证书. http://curl.haxx ...
- 下载额外数据文件失败 以下软件包要求安装后下载附加数据,但其数据无法下载或无法处理 ttf-mscorefonts-installer
故障显示: 一些软件包的数据文件无法下载 以下软件包要求安装后下载附加数据,但其数据无法下载或无法处理. ttf-mscorefonts-installer 这是一个永久错误,系统中的这些软件包将无法 ...
- 解决从dockerhub上下载debian:jessie失败
解决从dockerhub上下载debian:jessie失败 笔者使用docker build 构建镜像出现下面的错误 Step 1/12 : FROM debian:jessie Get https ...
随机推荐
- MATLAB remove outliers.
Answer by Richard Willey on 9 Jan 2012 Hi Michael MATLAB doesn't provide a specific function to remo ...
- opennebula 编译日志
[root@localhost opennebula-]# scons mysql=yes scons: Reading SConscript files ... Testing recipe: xm ...
- PostgreSQL的initdb 源代码分析之六
继续分析 下面的是获取运行此程序的用户名称,主要还是为了防止在linux下用root来运行的情形. effective_user = get_id(); ) username = effective_ ...
- 【转】windows上安装gvim
gvim安装包下载: 简明安装说明:1.安装 gvim 安装包中的程序.2.安装 第三方软件安装包中的程序,将 dll 文件放入 system32目录.3.将 bin 目录加入 PATH 环境 ...
- C# 图片保存到数据库和从数据库读取图片并显示
图片保存到数据库的方法: public void imgToDB(string sql) { //参数sql中要求保存的imge变量名称为@images //调 ...
- delphi 2010 资源文件使用
Project Recources... //1提取出资源 procedure TForm1.Button1Click(Sender: TObject);begin w ...
- SSO-Javascript模拟IE登录,不让IIS弹出登录窗口
解决方案: 用JS模拟IE用户登录,再跳转到对应的系统. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transiti ...
- 使用Java编写并运行Spark应用程序
我们首先提出这样一个简单的需求: 现在要分析某网站的访问日志信息,统计来自不同IP的用户访问的次数,从而通过Geo信息来获得来访用户所在国家地区分布状况.这里我拿我网站的日志记录行示例,如下所示: 1 ...
- Qt设置horizontal line 和vertical line 的颜色
Qt的horizontal line 和vertical line 是由QFame实现的 QFrame *line = new QFrame(this); line->setGeometry(Q ...
- IOS横竖屏控制与事件处理
公司App里面有个需求,即所有界面都是竖屏,且不允许横屏切换,唯独有一个图表界面允许横屏.那么,根据此需求处理如下: 首先,确保App本身应该允许转屏切换: 再次,我的App里面都是走UINaviga ...