EXCEL导出问题

问题描述:
运行时遇到错误:未能加载文件或程序集“microsoft.office.interop.excel, version=15.0.0.0, culture=neutral, publickeytoken=71e9bce111e9429c”或它的某一个依赖项。系统找不到指定的文件。
我负责的一个报表系统使用C#开发的,有一次系统升级后我只是测试了查询没问题就下班了,第二天还没睡醒就接到客户电话说报表系统导出报错。我马上登录系统导出时报错:
Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.

Details: To enable the details of this specific error message to be viewable on remote machines, please create a <customErrors> tag within a "web.config" configuration file located in the root directory of the current web application. This <customErrors> tag should then have its "mode" attribute set to "Off".

翻译“描述:应用程序错误发生在服务器上。此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因)。它可以,但是,可以查看浏览器运行在本地服务器上的机器。”
我马上登录服务器访问并导出,报错:
运行时遇到错误:未能加载文件或程序集“microsoft.office.interop.excel, version=15.0.0.0, culture=neutral, publickeytoken=71e9bce111e9429c”或它的某一个依赖项。系统找不到指定的文件。
但web.config配置文件中配置的:

我在网上查找了好多资料有的说在服务器上excel重装有的说打补丁,但服务器环境我不敢动啊,我当时想我明明引用的11.0的怎么变成15.0呢?Microsoft Visual Studio 2010发布网站又是引用的哪个环境呢?
重新生成网站,使用.NET Reflector查看dll包,如下:


显示microsoft.office.interop.excel 版本是15.0。
查找
<add assembly="Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"/>
是从哪里加载呢? http://blog.sina.com.cn/s/blog_8abeac5b0100zp8n.html 查看资料: C:\WINDOWS\assembly这个目录下。
到本地开发环境这个目录下查找microsoft.office.interop.excel 这个包只有15.0的:


我找了11.0的包放到目录下,重新发布,还是15.0。.Net版本是2.0在开发环境找到.Net目录:
C:\Windows\Microsoft.NET\Framework\v2.0.50727。在这个目录下有web.config的其他dll文件但没有Microsoft.Office.Interop.Excel.dll这个包。我想是不是发布网站时在.net环境下找不到Microsoft.Office.Interop.Excel.dll 就到系统环境下引用,就成了15.0的版本呢?我找了11.0的版本放到.Net环境下,重新发布。再次查看dll,如图:

版本变成了配置的版本了。把新发布的包部署到服务上,登录系统验证,系统恢复。我本地系统是15.0的版本我想应该是我装了office2016的原因吧。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值