none
请问程序发布到window server 2012上的iis上,打开excel文件报错,不知道是什么原因? RRS feed

  • 问题

  • 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。 
      说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 
    
     异常详细信息: System.InvalidOperationException: 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。
    
    源错误: 
    
    
    只有在调试模式下进行编译时,生成此未经处理的异常的源代码才会显示出来。若要启用此功能,请执行以下步骤之一,然后请求 URL: 
    
    1. 在产生错误的文件的顶部添加一条“Debug=true”指令。例如: 
    
       <%@ Page Language="C#" Debug="true" %>
    
    或:
    
    2. 将以下的节添加到应用程序的配置文件中:
    
    <configuration>
        <system.web>
            <compilation debug="true"/>
        </system.web>
    </configuration>
    
    请注意,第二个步骤将使给定应用程序中的所有文件在调试模式下进行编译;第一个步骤仅使该特定文件在调试模式下进行编译。
    
    重要事项: 以调试模式运行应用程序一定会产生内存/性能系统开销。在部署到生产方案之前,应确保应用程序调试已禁用。  
    
    堆栈跟踪: 
    
    
    
    [InvalidOperationException: 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。]
       System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString constr, DataSourceWrapper& datasrcWrapper) +1756306
       System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) +1769052
       System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) +100
       System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions) +61
       System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +948
       System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +6710531
       System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +26
       System.Data.OleDb.OleDbConnection.Open() +48
       System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +292
       System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +420
       System.Data.Common.DbDataAdapter.Fill(DataSet dataSet) +278
       telecomm_bill_basic_data_input.getTable(String ExcelFile) +133
       telecomm_bill_basic_data_input.ButtonBatchInput_Click(Object sender, EventArgs e) +1148
       System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +155
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint
     
    

    请问如何解决?
    2014年11月7日 3:07

答案

全部回复

  • OleDb换成12也不行

    string strConn = "Provider=Microsoft.Ace.OleDb.12.0;Data Source= " + ExcelFile + "; Extended Properties='Excel 12.0;HDR=No'";

    iis提示

    未在本地计算机上注册“Microsoft.Ace.OleDb.12.0”提供程序

    2014年11月7日 6:55
  • 问题解决了,去微软下载Microsoft Access 2010 数据库引擎

    安装一下即可

    http://www.microsoft.com/zh-CN/download/details.aspx?id=13255

    2014年11月7日 7:59
  • 你好,

    很高兴你的问题解决了,并且谢谢共享你的解决方案。我想说的是,我们team 成员应该像你学习,学会利用错误信息。

    根据错误信息

    未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。 
      说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟

    我们可以看出web server 机器缺少oledb provider,然后研究一下,bing/google/baidu,得到solution:我们需要安装access 2010 数据库引擎。

    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年11月10日 2:00