E
Earl Bonovich
Search Words:
Microsoft Project Server Spooler 0x8C040028 Domain
---------------------------------------------------------------
Here is my scenerio and my work around for the Spooler 0x8C040028 error.
We are setup with multiple domains.
Domain A: Contains the Windows 2000 Server running Project Server
Domain B: Is the domain the user logins into
We are still in "classic" domain mode as our client doesn't have the money
to
go to Active Directory. There is a two way trust between the domains, that
is functioning just fine.
I was able to setup the user in question, with her domain login for Domain
A.
She was able to go into PWA and start up Project and connect to project
server.
She was able to open projects from Project Server and save them to Project
Server.
However, they would not publish nor get to a state where everyone could see
them.
She was getting the 0x8C040028 error in the Spooler.
I followed the MS Support knowledge base and configured the ViewDrop folder.
I went so far to giving EVERYONE full rights to that directory.
Still, no luck.
Via watching SQL Profiler I was able to see the problems.
When she was going in via a WEB technology aka: IE or via Project Pro, it
was
login her in using her DOMAIN A login.
Project Spooler though, was login in using the DOMAIN B login that she was
login in as on her Desktop workstation.
I search high and low trying to figure out how to get the two logins to
match, but
I could not find one (If anyone knows, please let me know).
So I had to create another hack/fix/work around (choose your own term) to
get
her up and working. Here it is.....
Warning as usual: Use at your own risk. Microsoft and others highly
recommend
that you do not change any object nor access the SQL Server directly. This
code
works in my specific senerio, but you should test it first and use it at
your discresion.
I can not guarantee that it will work or not work on any systems.
Okay... Now that is out of the way... Here was my solution:
--------------------------------------------------------------
The stored procedure:
MSP_WEB_SP_QRY_GetAllResourceForWindowsAccountEvenDisabled
was where I first made the change.
It accepts a single parameter which is the NT login, and it returns the
matching user
information for that domain name. Since it was recieving the domain login
for
DOMAIN B, it would never find a match. So.
I added a line of code to it at the top:
IF @p0 = 'DOMAINB\user' SET @p0 = 'DOMAINA\user'
Thus it would then find the match, and return the data and the spooler no
longer had an error.
I later then changed the code to run a stored procedure (vs the IF)
which would check a new mapping table that I created (so I could do this for
more then
one domain\login), I simply fed the stored procedure the @p0 and returned
@p0 changed
if I found a mapping, or re-returned the input if no match was found (I
returned it as an OUTPUT
variable).
Then I did a few searches and found two more stored procedures that took the
NT login
as a parameter, and applied the same changes:
MSP_WEB_SP_QRY_GetEOrDResourceForNTAccount
MSP_WEB_SP_QRY_GetResIdAuthenInfoForName
-----------------------------------------------------
I hope that helps some of you out there, I know it did for me.
I also hope that it gives MS a starting point to work on a proper fix or
proper solution going forward.
Earl
Microsoft Project Server Spooler 0x8C040028 Domain
---------------------------------------------------------------
Here is my scenerio and my work around for the Spooler 0x8C040028 error.
We are setup with multiple domains.
Domain A: Contains the Windows 2000 Server running Project Server
Domain B: Is the domain the user logins into
We are still in "classic" domain mode as our client doesn't have the money
to
go to Active Directory. There is a two way trust between the domains, that
is functioning just fine.
I was able to setup the user in question, with her domain login for Domain
A.
She was able to go into PWA and start up Project and connect to project
server.
She was able to open projects from Project Server and save them to Project
Server.
However, they would not publish nor get to a state where everyone could see
them.
She was getting the 0x8C040028 error in the Spooler.
I followed the MS Support knowledge base and configured the ViewDrop folder.
I went so far to giving EVERYONE full rights to that directory.
Still, no luck.
Via watching SQL Profiler I was able to see the problems.
When she was going in via a WEB technology aka: IE or via Project Pro, it
was
login her in using her DOMAIN A login.
Project Spooler though, was login in using the DOMAIN B login that she was
login in as on her Desktop workstation.
I search high and low trying to figure out how to get the two logins to
match, but
I could not find one (If anyone knows, please let me know).
So I had to create another hack/fix/work around (choose your own term) to
get
her up and working. Here it is.....
Warning as usual: Use at your own risk. Microsoft and others highly
recommend
that you do not change any object nor access the SQL Server directly. This
code
works in my specific senerio, but you should test it first and use it at
your discresion.
I can not guarantee that it will work or not work on any systems.
Okay... Now that is out of the way... Here was my solution:
--------------------------------------------------------------
The stored procedure:
MSP_WEB_SP_QRY_GetAllResourceForWindowsAccountEvenDisabled
was where I first made the change.
It accepts a single parameter which is the NT login, and it returns the
matching user
information for that domain name. Since it was recieving the domain login
for
DOMAIN B, it would never find a match. So.
I added a line of code to it at the top:
IF @p0 = 'DOMAINB\user' SET @p0 = 'DOMAINA\user'
Thus it would then find the match, and return the data and the spooler no
longer had an error.
I later then changed the code to run a stored procedure (vs the IF)
which would check a new mapping table that I created (so I could do this for
more then
one domain\login), I simply fed the stored procedure the @p0 and returned
@p0 changed
if I found a mapping, or re-returned the input if no match was found (I
returned it as an OUTPUT
variable).
Then I did a few searches and found two more stored procedures that took the
NT login
as a parameter, and applied the same changes:
MSP_WEB_SP_QRY_GetEOrDResourceForNTAccount
MSP_WEB_SP_QRY_GetResIdAuthenInfoForName
-----------------------------------------------------
I hope that helps some of you out there, I know it did for me.
I also hope that it gives MS a starting point to work on a proper fix or
proper solution going forward.
Earl