用于ASP.Net中不同版本的Excel的连接字符串

时间:2015-12-29 06:56:16

标签: c# asp.net excel connection-string

我在ASP.Net中创建了一个系统,将多个excel文件合并为一个。我用于此的不同连接字符串如下

string formParams = string.Format("mail={0}&password={1}", "store@admin.com", "admin");

CookieContainer cookieContainer = new CookieContainer();

HttpWebRequest req = WebRequest.CreateHttp("http://muslimgowns.com/dashboard/login/public_login");
req.CookieContainer = cookieContainer;
req.GetResponse(); // This is just to get the initial cookies returned by the public_login

req = WebRequest.CreateHttp("http://muslimgowns.com/dashboard/login/login_access");
req.CookieContainer = cookieContainer; // Set the cookie container which contains the cookies returned by the public_login

req.ContentType = "application/x-www-form-urlencoded";
req.Method = "POST";

byte[] bytes = Encoding.ASCII.GetBytes(formParams);
req.ContentLength = bytes.Length;

using (Stream os = req.GetRequestStream())
{
    os.Write(bytes, 0, bytes.Length);
}

WebResponse resp = req.GetResponse();

using (StreamReader sr = new StreamReader(resp.GetResponseStream()))
{
    string pageSource = sr.ReadToEnd();
    File.AppendAllText("first.txt", pageSource); // Dashboard is returned.
} 

早些时候系统工作正常,但是从今天起它开始给我错误

' Microsoft.ACE.OLEDB.12.0'提供商未在本地计算机上注册

我是否必须在我的应用程序中包含任何特定(新)dll,还是需要更改我的应用程序?

我尝试合并的文件类型是

Microsoft Excel 97-2003工作表(.xls)

2 个答案:

答案 0 :(得分:0)

你必须安装excel的驱动程序,你可以在office driver

找到它

如果您在IIS上遇到相同的错误,那么您必须执行此Link

中提到的一些配置

答案 1 :(得分:0)

我也遇到了同样的问题。可能的原因是,远程服务器上有不同的IIS设置,IIS设置不同。默认情况下,64位操作系统上的IIS在64位工作进程中运行应用程序,而64位进程无法加载32位DLL。

查看以下链接并在远程服务器IIS中进行更改。 (这在一段时间后解决了我的问题)

Solved - The Microsoft.ACE.OLEDB.12.0 provider is not registered on the local machine