Background
I’ve implemented an asp.net web application which executes an SSIS package from disk. This works when running from visual studio in debug, but once released to the server complains about 64 bit SSIS as per error below.
I’ve seen numerous posts about resolutions, but am unsure about the most apporpriate fix for my scenario. I have full access over the web server and asp.net c# application code, limited access over the database server for this release.
The error:
*SSIS Error Code DTS_E_OLEDB_EXCEL_NOT_SUPPORTED: The Excel Connection Manager is not supported in the 64-bit version of SSIS, as no OLE DB provider is available. SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER*
C# Code
string pkgLocation;
Package pkg;
Application app;
DTSExecResult pkgResults;
string result = string.Empty;
string dtsErrors = string.Empty;
try
{
pkgLocation = packagePath;
app = new Application();
pkg = app.LoadPackage(pkgLocation, null);
pkgResults = pkg.Execute();
//Add any errors to string for notifying user
foreach (DtsError local_DtsError in pkg.Errors)
dtsErrors += " " + local_DtsError.Description;
result = pkgResults.ToString();
}
catch (Exception exception)
{
result = exception.Message;
}
Potential Resolutions (please help with recommendations)
-
Run SSIS as a 32 bit process (How do I do this and will it work in my situation?)
-
Install 64 bit drivers for excel/access and use a sql stored proc with openrowset to get my data instead of SSIS. I’m not sure about this one, do I need the drivers on the database server and web server? Also I’d need to get the db admin to turn on ad hoc queries which they may not be ok with. Here’s the driver I got working locally, but then it was already working locally the original way..
http://blog.codefluententities.com/2011/01/20/microsoft-access-database-engine-2010-redistributable/ -
Any other fix I haven’t mentioned, these seem like rough hacks..?
My solution is to run the iis application pool in 32 bit mode.
Nopte that after I got this working in my asp.net page I realsised that this only worked from within a browser on the server hosting the site. Here is my post related to getting it working from a broswer on any client hitting this server: SSIS package from ASP.net does not work on client but does on server