80070005 error on server 2003 SBS for non admin user |
Author |
Message |
|
Posted : 2006-05-09 10:56:01 |
Greetings. I had QODBC5 installed on this server and configured well - everything ran great for several months. The server had to be reinstalled but we left the filesystem intact and QODBC seemed to find it's registration information OK - installed version 6 this time. We have it setup in DCOM mode and everything works well when you login to the web application as administrator. When you login to the app as another user we get 80070005 in the driver log. I have added a group that contains the appropriate web users to the dcom launch and access permissions for both qbXMLRP2eQODBCInteractive and qbXMLRPeQODBCInteractive. As per your documentation. The driver log snippet is as follows:
2006-05-08 19:38:32 QODBC Ver: 6.00.00.155 ********************************************************************************************************************* IsAService: False Open Connection Failed. S0000 00000 [QODBC] QB Open Connection Failed. Create DCOM Instance Error = 80070005, Unknown error.. Created qbXMLRP2 OK. SDK Module: QBXMLRP2EQODBCInteractive.exe
Any suggestions? |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2006-05-09 11:10:57 |
Using the Windows Explorer Security tab, you also need to give read and write rights to the QuickBooks application folder (normally C:\Program Files\QODBC Driver for QuickBooks\) to the group that contains the appropriate web users too. This allows for the creation and update of QODBC trace and message logs and allows access to the DCOM server executables. |
|
|
|
|
Posted : 2006-05-09 21:41:20 |
*nods* yea - had done that as part of the original install - my bad - should have listed it in my original post. The group qodbc_group has the users in it that need to use the qodbc portion of the application - the user I'm logging in with is a member of that group and that group is what I have used to assign rights to the app folder, the c:\windows\system32\I9KUQLW.ocx and the dcomconfig security settings as well. That group does not have modify rights to the directory but they do have read and write. |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2006-05-10 08:20:17 |
It seems you still have a security setup issue. Please switch off the QODBC optimizer and download the following simple example by clicking here: qbcust.zip. Open the zip file and extract qbcust.asp. Save the file on your Local Disk in the \Inetpub\wwwroot folder as shown here:
Launch your browser (making sure QuickBooks is currently running on your computer with your company file open) and run the example by entering the following URL in your browser :-
http://localhost/qbcust.asp
The following should be displayed on your browser (with your data) and let me know how the Admin and other Web Users work? :-
|
|
|
|
|
Posted : 2006-05-12 22:14:01 |
OK - sorry it took me so long to get back to this. I setup as requested - logged in as Admin to our QB file (via terminal services if that makes a difference) and opened the asp file via IE. I get this response:
QODBC Customer Web List Demo Page Preparing to Create Connection Object ADO Connection Created ADO Recordset Created - Opening QuickBooks Sample Company File
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[QODBC] QB Begin Session Failed. Error = 80040416, If QuickBooks is not running, a call to the "BeginSession" method must include the name of the QuickBooks company data file.
/qbcust.asp, line 30 |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2006-05-13 07:54:50 |
|
|
|
|
Posted : 2006-05-13 09:24:11 |
OK - tried again - sitting at the server console this time - with QB open and my QB file open. I have a screenshot of QB up with the browser but I don't know how to attach a file to this forum. I still get this error:
QODBC Customer Web List Demo Page Preparing to Create Connection Object ADO Connection Created ADO Recordset Created - Opening QuickBooks Sample Company File
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[QODBC] QB Begin Session Failed. Error = 80040416, If QuickBooks is not running, a call to the "BeginSession" method must include the name of the QuickBooks company data file.
/qbcust.asp, line 30 |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2006-05-13 10:09:37 |
The above message is saying that the QuickBooks Data DSN used by the qbcust.asp test file doesn't specify what company file to use. You need to add the company file path to the QuickBooks Data DSN as per: How do I setup QODBC to auto-login into QuickBooks and start it if it's not running?
I also thought you said that when logged in as the Administrator it works?
If that's the case, you are going to need to go back and setup Anonymous access in IIS. Trying to resolve why your Terminal Server logins don't work through a web application is a Windows Terminal Server security issue.
Reading your first post, I believe if you give the Terminal User administrator rights your web application will work also. |
|
|
|
|
Posted : 2006-05-16 21:55:12 |
It does work when you login to the web app as Administrator - in fact - the other user I'm trying (the one that doesn't work and gives me the 80070005) is a member of the Domain Admins group - so therefore is locally on the SBS server a member of the Administrator's group.
When you sent your test file you didn't mention any authentication - which confused me a bit - but I thought oh well - go ahead and go for it - so I put it out at the webserver root - which does not force authentication. Upon your last reply I moved your file into the same directory as my application - so it is under exactly the same auth rules. QB is loaded on the server console with a data file open. I still get this error message when I try to access your test file - even when logged in as Administrator:
QODBC Customer Web List Demo Page Preparing to Create Connection Object ADO Connection Created ADO Recordset Created - Opening QuickBooks Sample Company File
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[QODBC] QB Begin Session Failed. Error = 80040416, If QuickBooks is not running, a call to the "BeginSession" method must include the name of the QuickBooks company data file.
/felix/qbcust.asp, line 30 |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2006-05-16 23:02:21 |
|
|
|
|
Posted : 2006-05-17 12:28:10 |
OK - I specified the QB data file for the DSN as per the documentation. In this case the QB data file is already setup internally to accept QODBC connections (which I assume is correct since the application I wrote is working correctly as long as you login with Administrator). Here is the error message I now get:
QODBC Customer Web List Demo Page Preparing to Create Connection Object ADO Connection Created ADO Recordset Created - Opening QuickBooks Sample Company File
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[QODBC] QB Begin Session Failed. Error = 80040406, Could not determine the version of the QuickBooks company data file, or the data file has been modified and requires a newer version of QuickBooks.
/felix/qbcust.asp, line 30 |
|
|
|
|
Posted : 2006-05-17 12:29:33 |
I get this same error, by the way, wether I login as a Domain Admin user or as Administrator itself. |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2006-05-17 14:49:05 |
QuickBooks needs to be closed when you run:
http://localhost/qbcust.asp
Did you check that "auto-login" unattended mode works correctly? Using VB Demo you should be able to use the "QuickBooks Data" DSN without running QuickBooks. |
|
|
|
|
Posted : 2006-05-17 21:48:32 |
Well - this is QB Premier 2004 so the auto-login configuration boxes are checked off in the ODBC config. When I run VB Demo against the same DSN that I'm testing with qbcust.asp it works fine - running the demo from terminal services with QB still running - same company file open - on the console. I'll have to physically get to the console to close QB to do the test you mentioned - I was under the impression that QB should still be open with the company file open as per your 5-13 post since the result of that was failure.
This is also SBS SP1 if that makes a difference...I know some security model stuff got changed for IIS and ASP |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2006-05-17 23:27:21 |
The Advanced tab in QODBC Setup v6 Build 148 and later now has new defaults for Integrated Application Defaults Authorization popup settings. These settings are only available to USA QuickBooks 2005 and USA QuickBooks 2006 users, otherwise they are greyed out. But, that doesn't mean that you don't need to setup auto-login unattended mode as instructed, because you still do.
In order to get a IIS/QODBC/QuickBooks connection going, auto-login must work. Using VB Demo you should be able to use the "QuickBooks Data" DSN without running QuickBooks. You cannot run a IIS connection and have QuickBooks running on any Terminal Server users either. See: W2K3 Terminal Server / QB2006 Ent. + QODBC for more information. |
|
|
|
|
Posted : 2006-05-18 01:19:57 |
Tom,
How does this apply to me? I'm running QB 2004 - not '05 or '06 and the only reason I was using terminal services at all was to test the VB Demo software - which worked just fine.
It seems to me that we've gotten way off track from the original problem and are now troubleshooting our troubleshooting steps instead of troubleshooting the problem. Let me restate the original problem if I can - perhaps we can refocus on that:
SBS 2003 SP1 with IIS
QB Premier 2004
QOBDC server edition (version 5 with version 6 installed over the top) in DCOM mode
Web application running inside IIS (php application) referencing the QODBC System DSN pointing to a specific QB file in "Same as company file" mode - optimizer turned off - remote connector turned off - online edition turned off - DCOM enabled.
The web application works wonderfully when logged into the web application as Administrator. I get 80070005 errors when logging into the web application as any other user (even if they are a member of the Domain Admins group).
Perhaps I'm not understand what you are trying to communicate to me with the cut and paste of your documentation. Am I missing something?
Thanks...
JD |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2006-05-18 08:52:24 |
When you reinstalled the OS you changed your security settings. You are going to need to go back and check the setup of Anonymous access in IIS as you normally are not required to login to see the data produced by qbcust.asp.
I have also reviewed this on one of my systems that was working with QODBC v5, and basically it stopped working as soon as I installed QODBC v6. I had to reconfigure the directory permissions and DCOMs again from scratch and reboot to get QODBC v6 going again. So regardless whether your web pages worked using QODBC v5, when you upgrade to QODBC v6 you must go through the whole DCOM setup procedure again just like it's brand new.
Installing Terminal Server does change how QODBC works and that's why I referred you to: W2K3 Terminal Server / QB2006 Ent. + QODBC as QODBC needs to work with QuickBooks running on the server's local session, not a Terminal Server session. |
|
|
|
|
Posted : 2006-05-18 23:02:59 |
OK - based on your last e-mail I decided to read through the DCOM config document and just doublecheck everything. I have a qodbc_group that has the user I'm trying to setup and the Anonymous (IUSER_SERVER) in it. I do not see an ASPNET user in my user or role list so I haven't added that to anything.
I've added qodbc_group and the INTERACTIVE role to the following:
directory permissions to c:\Program Files\QODBC Driver for QuickBooks (modify/read-ex/list/read//write) permissions to c:\windows\system32\i9k4UQLW.ocx (read-ex/read/write) the dcom launch-activation and access permissions to qbXMLRP2eQODBCInteractive the dcom launch-activation and access permissions to qbXMLRPeQODBCInteractive
I killed the two QBXML dcom processes and restarted IIS. The DCOM processes do reload as soon as I attempt to use any QODBC DCOM source - even when using them as the test user - so they are at least being launched. I then downloaded the TestDCom.asp test script and run that. Running as Administrator I get Status==Success on every line. Running as my test user I get Success for all .DLL lines but "Permission denied" for both QBXMLRP...Interaceive.exe lines.
If I run TestDCom.php I get only the first line of the table (QBXMLRPEQODBCInterace.exe) with no Status indicator at all. No web browser errors - just the table fails to complete - not sure if this is relevant or not. |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2006-05-19 08:58:49 |
As I don't have any errors, on a server local session run the qbcust.asp test example. I believe that will work logged in as administrator on the server console. By test user do you mean Terminal User? Try using the IP of the server, not localhost. |
|
|
|
|
Posted : 2006-05-19 11:36:50 |
Tom,
My test user is a normal Windows AD user - and member of the Domain Admins group so they have elevated rights. Your TestDCom.asp script is running inside IIS - from a remote IP not from the loopback - so Terminal services is in no way involved in this test. |
|
|
|
|
Posted : 2006-05-26 03:27:32 |
Tom,
Any progress on this issue??
Thanks.
JD |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2006-05-26 10:59:27 |
I have often had to use the QODBCSetDCOM.VBS VB script to correct the setup to the DCOM Servers regardless whether they appear correctly setup or not. QODBCSetDCOM.VBS will reset and automatically add all necessary security each time it is run. The script can be edited if you need to change the Accounts it is configuring.
Automatic DCOM Configuration Click here: qodbcSetDCOM.zip to download the following automated tools:-
|
Dcpinst.exe is an installation setup for the automated DCOM configuration object. This needs to be run first and only once. |
|
QODBCSetDCOM.VBS is a VB script that uses the installed configuration object to setup the DCOM Servers. It will reset and automatically add all necessary security each time it is run. The script can be edited if you need to change the Accounts it is configuring. |
|
The new settings will not take affect until the DCOM servers (qbXMLRPeInteractive.exe and qbXMLRP2eInteractive.exe) are removed from memory. Rebooting is the simplest way to accomplish this, but running the Windows Task Manager and Ending Process on any running copies will also work. |
|
Test your DCOM setup using one of the following:-
|
|
|
|
|