p2p.wrox.com Forums

p2p.wrox.com Forums (http://p2p.wrox.com/)
-   BOOK: Beginning ASP 3.0 (http://p2p.wrox.com/book-beginning-asp-3-0-27/)
-   -   Microsoft Jet connection problem (http://p2p.wrox.com/book-beginning-asp-3-0/71342-microsoft-jet-connection-problem.html)

istcomnet November 6th, 2008 02:31 PM

Microsoft Jet connection problem
I am working on classic asp and using Microsoft JET Database Engine to connect to my Access database. It was working fine Windows XP pro, but now I upgraded to Vista with IIS7. I got an error message “Microsoft JET Database Engine error '80004005’ Unspecified error”
“Provider cannot be found. It may not be properly installed”

This is my connection string
MM_xx_STRING = "PROVIDER=Microsoft.Jet.OLEDB.4.0; Data Source=" & ("E:\wwwroot\xxxxx\xxx.mdb")

please help don’t know what to do here!!! :(

Thank you

dparsons November 6th, 2008 03:47 PM

IIS 7 does not play well with ASP / Access by default.


From the article:
Access and Classic ASP
A lot of people use Access as a database - because it is small, can be copied around, and is easy to manage. One of the changes we made in IIS7 in Vista broke using ASP and Access by default. I described this change in more detail in this post, but essentially it has to do with the fact that Application Pools now use the Application Pool identity's profile and temporary directory, rather than \windows\temp by default. And since the only one that can write to Network Service's temp directory is the Network Service, anonymous or authenticated ASP applications break, since ASP uses the impersonated identity to access the database. If you use ASP and Access on IIS7, you've probably seen this error, or a variation of it:
Microsoft JET Database Engine error '80004005'
Unspecified error
The answer is pretty straight forward: turn off loadUserProfile, or ACL the temp directory to allow writes. As a result of this and other compatibility issues, we're considering reverting this change in Longhorn Server / Vista SP1. In the mean time, you can work around it by doing either of the following:
This appcmd command will turn off loadUserProfile for the Default Application Pool. if your application runs in a different AppPool, make the corresponding change:
%windir%\system32\inetsrv\appcmd set config /section:applicationPools /[name='DefaultAppPool'].processModel.loadUserProfile:false
This command will ACL the Network Service temp directory to allow creator write / read privledges. If you run your Application Pool under a different identity, you'll need to ACL that owner's temp directory:
icacls %windir%\serviceprofiles\networkservice\AppData\Lo cal\Temp /grant Users:(CI)(S,WD,AD,X)
icacls %windir%\serviceprofiles\networkservice\AppData\Lo cal\Temp /grant "CREATOR OWNER":(OI)(CI)(IO)(F)


================================================== =========
Read this if you want to know how to get a correct reply for your question:
================================================== =========
.: Wrox Technical Editor / Author :.
Wrox Books 24 x 7
================================================== =========

Kram July 1st, 2011 05:54 AM

Thanks for sharing that reply.

I have however tried all of this and more, with no luck at all. I'm running Windows 7 IIS 7.5

SQL works fine, however I am just unable to get Access mdb files accessible from asp pages.

Any suggestions appreciated.

jayvee88 February 27th, 2013 09:31 AM

if you just updated your OS try to locate "c:\Windows\Temp" this folder might have been deleted.

All times are GMT -4. The time now is 06:39 AM.

Powered by vBulletin®
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
© 2013 John Wiley & Sons, Inc.