Deployment Questions and Issues

Coordinator
Nov 15, 2007 at 11:13 PM
All feedback are welcome on how to enhance this solution starter!
Nov 19, 2007 at 8:31 PM
Hi,
This looks like a very promissing solution, however, I have tried to install this on a VPC and it's not working at the moment, what I did was:

- grab the dll from codeplex.
- gac it
- create a new server side event handler for the dll
- restart the project server eventing services and also restarted the machine a couple of times
when I save my timesheet I get this error:

While communicating with the Project Server an error occured. Check connectivity with your administrator to determine if further action is necessary

then I try saving it a second time, and it works, but still nothing happens at the tasks level, am I doing something wrong?


Coordinator
Nov 20, 2007 at 3:39 PM
Any error in the windows event viewer?
For the event handler to kick in you need to make a change to the timesheet hours otherwise a SAVE won't do anything.
Nov 21, 2007 at 9:00 PM
Thank You!!! I hope this will solve my IT departments objection to the multistep timesheet / Task reporting. This was a big issue for us.

I am reading the attached documentation....just started. Do you have a legend or can explain the colors on the Data Flow chart 3.1 on page 5?

Also, in the text below the data flow in 3.1, they reffer to the Status Manager...that is a new term for me. I understand the Team Member, Project Manager and Timesheet Manager roles. Can you help explain?

Last, I will be very intersted in testing how this works if a Project Manager "Rejects" time submitted on a task...that was automatically scynronized from a timesheet. Today, if I fill out a timesheet, it auto approves, import it in My Tasks....and it is rejected: It does not sync back to the timesheet that it has been rejected...cause it was auto approved. Maybe that will change because we will have to designate a timesheet approver in this scnerio.

Thanks and look forward finding a solution to this problem.

Dennis
Coordinator
Nov 22, 2007 at 6:58 PM

First I posted an updated version of the diagram here: http://blogs.msdn.com/chrisfie/archive/2007/11/20/timesheeting-and-statusing-data-flow-diagram.aspx

Yes Status Manager=Project Manager

If time is rejected it does not synch back with the Timesheet data at this stage, but it could be done via code using the standard timesheet PSI calls.
Nov 26, 2007 at 1:32 AM
Hi,

I receive an error when the 'OnUpdated' event is fired:

Windows Event log reads:
FAILED to execute custom timesheet event OnUpdated, due to an Exception: The request failed with HTTP status 401: Unauthorized.

Log file reads:

10:27:58 AM /pwa: FAILED to execute custom timesheet event OnUpdated, due to an exception: The request failed with HTTP status 401: Unauthorized.
10:27:58 AM /pwa: SubmitStatus: True; timesheet URL: http://sdg-project2k7/pwa/vtibin/psi/timesheet.asmx; statusing URL: http://sdg-project2k7:56737/ProjectServer_SSP/psi/statusing.asmx
10:27:58 AM /pwa:
10:27:58 AM /pwa: Total execution time: 10.18 seconds; SubmitStatus: 0.00 seconds


I am assuming that as there are no other log entries, that the code is failing on the following line:

TimesheetWS.TimesheetDataSet timesheetDS = timesheet.ReadTimesheet(e.TsUID);


Any ideas appreciated,

Scott.


Coordinator
Nov 26, 2007 at 1:42 AM

Does the SSP account have access to the Timesheet webservices (run IE as SSP admin account and type the url of the web service)?
Nov 26, 2007 at 4:27 AM
Edited Nov 26, 2007 at 4:29 AM
Hi,

I placed some more logging into the handler and confirmed that the user is: 'NT AUTHORITY\NETWORK SERVICE'. I have not changed the default configuration for Project, so I assume that this would always be the case.

Looking at the security settings for the url (http://sdg-project2k7/pwa/vtibin/psi/timesheet.asmx) I can understand why I'm getting an unauthorized error - but again there must be some configuration difference here if you are able to access the web service without impersonation.

Scott.




Coordinator
Nov 26, 2007 at 3:54 PM
Scott, change the account the Eventing service is running under so that it runs with the administrator account you have setup for your farm and do the same thing for the Queuing service.
Nov 26, 2007 at 5:36 PM

I am running into what appears to be an identical problem. Fresh one machine demo install of Project Server 2007, using a Domain Admin account as the service account. Both the Events service and the Queue service are running as this service account, but I am still getting this in the TSLog:

11:46:08 AM /PWA: FAILED to execute custom timesheet event OnUpdated, due to an exception: The request failed with HTTP status 401: Unauthorized.
11:46:08 AM /PWA: SubmitStatus: True; timesheet URL: http://PServer/PWA/vtibin/psi/timesheet.asmx; statusing URL: http://PServer:56737/ProjServSSP/psi/statusing.asmx
11:46:08 AM /PWA:
11:46:08 AM /PWA: Total execution time: 5.22 seconds; SubmitStatus: 0.00 seconds


I've verified that the service account can access those URLs as well.

I don't have Visual Studio installed on this machine, but may be making another machine to test this on.

Nov 27, 2007 at 12:21 AM
I have a single server installation and so I have not configured domain accounts for these services (as per installation guide).

Would it be possible to impersonate all web service invocations so that we don't have to rely on the service accounts having the correct privileges?

Thanks,

Scott.
Coordinator
Nov 27, 2007 at 1:49 AM
In that case you could have created a local server account for instance EPMSvc and used that account for the installation of EPM. You can add that account after the fact and use stsadm to add it to the SSP and manually add it to PWA.
Nov 27, 2007 at 7:28 AM
Would this work given that the web services are protected by Windows Integrated Authentication and the local server account is not a member of the domain?

Also, I added the following line at the beginning of "step 2" to impersonate the timesheet calls (it appears to work), but I have no idea if this is reliable, suitable or correct. Can you please let me know if this is a workable solution?

timesheet.SetImpersonationContext(true, contextInfo.UserName, contextInfo.UserGuid, Guid.Empty, contextInfo.SiteGuid, contextInfo.Lcid);

Thanks,

Scott.

Nov 27, 2007 at 2:07 PM
thanks for that great Solution Starter!

Does anybody have any idea how to prevent teammember to add new "Top Level" lines.
Or if that is not possible, is there a way to add an event handler that throws an error if somebody tries to save a timesheet with actuals on a "Top Level"?

thanks in advance

Hans
Coordinator
Nov 27, 2007 at 3:52 PM
Yes that will work, you'll have to do impersonation when you call the resource WS as well (Step 3).
Nov 29, 2007 at 12:58 PM
Hi,

First, thanks for the great work. It saves a lot of clicking. I have a problem when submitting more then 5-6 tasks at once. The log says:


7:15:03 PM /project: STEP 2 - Start event override for timesheet UID: 0f6ce817-8dd0-4e69-9e0b-2350dd0a5686
7:15:03 PM /project: STEP 3 - Statusing Impersonation for RES_UID: c004c206-c8c0-40c2-878a-dc4d2d315253
7:16:43 PM /project: FAILED to execute custom timesheet event OnUpdated, due to an exception: The operation has timed out
7:16:43 PM /project: SubmitStatus: True; timesheet URL: http://intranet/project/vtibin/psi/timesheet.asmx; statusing URL: http://intranet:56737/Intranet/psi/statusing.asmx
7:16:43 PM /project: Timesheet: My Timesheet; Resource: Pencho Georgiev; Creator: Pencho Georgiev, Period: e8c903f7-b3f6-4434-b331-53bb67d60007
7:16:43 PM /project: Total execution time: 100.15 seconds; SubmitStatus: 0.00 seconds

It looks like when the execution time reaches 100 seconds it times out. There is no problem with small anount of task updates:

7:04:27 PM /project: STEP 2 - Start event override for timesheet UID: 0f6ce817-8dd0-4e69-9e0b-2350dd0a5686
7:04:27 PM /project: STEP 3 - Statusing Impersonation for RES_UID: c004c206-c8c0-40c2-878a-dc4d2d315253
7:04:33 PM /project: STEP 4 - Imported Timesheet: My Timesheet; Resource: Pencho Georgiev; Creator: Pencho Georgiev, TotalActValue: 10.00, Period: e8c903f7-b3f6-4434-b331-53bb67d60007
7:04:33 PM /project: Timesheet line: 0; Project: 1_TestPrj; Assignement: Test Task Pencho; Actual Work: 3.00
7:04:33 PM /project: Timesheet line: 1; Project: Admin Work; Assignement: Ser; Actual Work: 4.00
7:04:33 PM /project: Timesheet line: 5; Project: zz General Archive Sep 04 - Jan 05_Published; Assignement: System maintenance and downtime; Actual Work: 3.00
7:04:34 PM /project: STEP 5 - SubmitStatus for: 3 assignments
7:04:34 PM /project: SUCCESSFULY executed custom timesheet event OnUpdated
7:04:34 PM /project: Total execution time: 15.84 seconds; SubmitStatus: 0.61 seconds

Any help will be appreciated.

P.S. This a test server with no load.
Nov 29, 2007 at 3:42 PM
Good start on easing what has been a very sore spot w/ EPM users. The seperation between time reporting and task progressing, while great in theory, has been a real nightmare to train and enforce with users.

For this code to be of real value, the user MUST be able to supply an Estimate to Complete (aka Remaining Work) with their time entry. Unless I'm missing something, this code does not permit a Remaining Work entry. When I click on the name of a task in the Timesheet display, I go to Assignment Details, where I can input Actual Work and Remaining Work. However, the info I enter in Assignment Details does not seem to get populated on the Timesheet.

You guys are going in the right direction! However, a time/task progress entry MUST include Actual Work and Remaining Work to be of value.

Thanks, and keep up the good work!
Coordinator
Nov 29, 2007 at 5:31 PM

Strange, is IIS running fine? Is the SQL server overloaded? Check the performance counters.
Can you access the WS byt typing the URL directly in IE?
Nov 30, 2007 at 12:04 PM
Yes, I can access both URL's from the browser and there are no performance issues with IIS and SQL. I still think that there is a timeout limit somewhere. Checked the .net configuration for the site and under Office Server Web Services and increased execution timeout to 600 sec.,restarted IIS, SQL but still no luck. It still times out on 100 sec. Very weird... :(
Coordinator
Nov 30, 2007 at 4:15 PM
Pencho, let's take this offline, send me an email at: chrisfie@microsoft.com
Jan 17, 2008 at 10:10 PM
Two things: a solution for the issue I ran into above, and a new problem:
1) the solution.
I was receiving a 401: unauthorized error. See above for more description. I solved this by creating a Project Server security account for the Project Server Service account that is running the eventing service. I used Admin permissions, but some lower level might be adequate. I'm not sure.

2) the new problem.
I just tried to install this code on a Project Server environment using SSL. The event does not succeed. It tries accessing the Office Server services at https://server:56737/ ... when it should either use http://server:56737 or https://server:56738/...

Below is the TSLog from a successful request with the Public URL set in Alternate access mappings as http://servername, and then a failed try after I changed the public url in Alternate access mappings to https://servername.

I looked briefly through the code for where the url is composed, but didn't see it at a first glance.

4:46:21 PM /PWA: STEP 2 - Start event override for timesheet UID: 0f60d14a-a073-47e1-ba5b-c43ab58263b5
4:46:21 PM /PWA: STEP 3 - Statusing Impersonation for RES_UID: 47243585-c289-4a39-86a1-e0a88181c0de
4:46:21 PM /PWA: STEP 4 - Imported Timesheet: My Timesheet; Resource: Randy J; Creator: Randy J, TotalActValue: 10.00, Period: 4c63be95-0285-4d2c-a9b4-b6372d64280b
4:46:22 PM /PWA: Timesheet line: 8; Project: Timesheet test; Assignement: Task for Randy on Stage; Actual Work: 10.00
4:46:22 PM /PWA: STEP 5 - SubmitStatus for: 1 assignments
4:46:22 PM /PWA: SUCCESSFULY executed custom timesheet event OnUpdated
4:46:22 PM /PWA: Total execution time: 0.71 seconds; SubmitStatus: 0.46 seconds

4:50:22 PM /PWA: STEP 2 - Start event override for timesheet UID: 6a5ccd16-03e4-426f-a45c-805f08926561
4:50:22 PM /PWA: STEP 3 - Statusing Impersonation for RES_UID: 47243585-c289-4a39-86a1-e0a88181c0de
4:50:22 PM /PWA: FAILED to execute custom timesheet event OnUpdated, due to an exception: The underlying connection was closed: An unexpected error occurred on a send.
4:50:22 PM /PWA: SubmitStatus: True; timesheet URL: https://servername/PWA/vtibin/psi/timesheet.asmx; statusing URL: https://servername:56737/ProjectSSP/psi/statusing.asmx
4:50:22 PM /PWA: Timesheet: My Timesheet; Resource: Randy J; Creator: Randy J, Period: 4c63be95-0285-4d2c-a9b4-b6372d64280b
4:50:22 PM /PWA: Total execution time: 0.12 seconds; SubmitStatus: 0.00 seconds

Coordinator
Jan 18, 2008 at 4:55 AM
Hello,
Regarding 2) as mentioned in the doc you'll have to change the code to take into account the specific port number for HTTPS:
Please note that in a HTTPS configuration 56737 needs to be replaced with TCP port 56738. (page 12)
Jan 18, 2008 at 4:33 PM

I revised WSUrl to handle https. I've built this, but haven't tested it yet.

private string WSUrl(SPSite ss, string wsName, bool impersonate)
{
if (impersonate)
{
if ((ss.Protocol.ToLower()) == "https")
return string.Format("{0}//{1}:56738/{2}/psi/{3}.asmx",
ss.Protocol, ss.HostName, sspName, wsName);
else
return string.Format("{0}//{1}:56737/{2}/psi/{3}.asmx",
ss.Protocol, ss.HostName, sspName, wsName);
}
else
return string.Format("{0}/vtibin/psi/{1}.asmx",
ss.Url, wsName);
}
Jan 18, 2008 at 8:48 PM
One error in the above code: replace "https" with "https:" The colon is returned by SPSite.Protocol.

I tested this with both unencrypted and a SSL site and it works.

For anyone else testing, if you install an SSL certificate after the Office Server installation, then the "Office Server Web Services" website may still be using a different self-signed certificate that is not trusted by the service account. You need to replace this cert (in IIS Manager) with one from a trusted authority.


James Fraser
Jan 31, 2008 at 10:22 AM
Hello!

Has established according to the instruction. Has corrected for a code, according to the instruction for work HTTPS. I receive a error in log:

14:07:02 /pwa: STEP 2 - Start event override for timesheet UID: b32a5a33-a791-4db4-9176-cef95257aadf
14:07:02 /pwa: STEP 3 - Statusing Impersonation for RES_UID: dfc482cf-450b-4bce-a811-37ee812247d3
14:07:03 /pwa: FAILED to execute custom timesheet event OnUpdated, due to an exception: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
14:07:03 /pwa: SubmitStatus: True; timesheet URL: https://server/pwa/vtibin/psi/timesheet.asmx; statusing URL: https://server:56738/intra/psi/statusing.asmx
14:07:03 /pwa: Timesheet: Мое расписание; Resource: Chesnokov; Boris; Creator: Chesnokov; Boris, Period: b47189d4-483b-40bb-9cbf-650528820ad8
14:07:03 /pwa: Total execution time: 6,96 seconds; SubmitStatus: 0,00 seconds

i need the any help !!! ((((
Jan 31, 2008 at 2:22 PM
Boris,

Take a look at the certificate in use by the Office Server Web Services web site (listed in IIS). In my case it was using a certificate that was self signed, and the process did not trust it.

To fix:
1) "Export the current certificate to a .pfx file" for the "Office Server Web Services" site, in case you need to restore it.
2) "Replace the current certificate" and set the Office Server Web Services site to use a trusted certificate, probably the one used by your other sites.

These steps are found in IIS Manager -> right click on web site to get Properties -> Directory Security tab -> Server Certificate button.


Hope this helps...
Feb 29, 2008 at 12:56 PM
I'm trying to install this on request from the project server application support team. I just manage their servers for them. I downloaded the dll but can't get it to install. I don't have visual studio installed but I did found a copy of gacutil in C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322

So I edited the script to:

@SET LOCAL_ROOT="C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322"
%LOCAL_ROOT%\gacutil.exe /u Microsoft.EPM.Events.TimesheetEvent
%LOCAL_ROOT%\gacutil.exe /i Microsoft.EPM.Events.TimesheetEvent.dll /f
@echo STOP the P12 Event Service
net stop projecteventservice
@echo START the P12 Event Service
net start projecteventservice

Which gives me:

C:\temp>install

C:\temp>"C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322"\gacutil.exe /u Microsoft.
EPM.Events.TimesheetEvent

Microsoft (R) .NET Global Assembly Cache Utility. Version 1.1.4322.573
Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.

No assemblies found that match: Microsoft.EPM.Events.TimesheetEvent

Number of items uninstalled = 0
Number of failures = 0


C:\temp>"C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322"\gacutil.exe /i Microsoft.
EPM.Events.TimesheetEvent.dll /f

Microsoft (R) .NET Global Assembly Cache Utility. Version 1.1.4322.573
Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.

Failure adding assembly to the cache: Unknown Error
STOP the P12 Event Service

C:\temp>net stop projecteventservice
The Microsoft Office Project Server Events Service service is stopping.
The Microsoft Office Project Server Events Service service was stopped successfu
lly.

START the P12 Event Service

C:\temp>net start projecteventservice
The Microsoft Office Project Server Events Service service is starting.
The Microsoft Office Project Server Events Service service was started successfu
lly.

And this is where I'm stuck. Any tips would be greatly apprieciated.
Coordinator
Feb 29, 2008 at 2:30 PM
You can drag and drop the DLL manually in the Assembly directory (C:\Windows)
Mar 5, 2008 at 9:44 AM
Yep, that works, thanks.

I'm now at 4.2 in the manual. Once I press save there I get a message box informing me "The assembly is not signed (there is no public key token).

Any tips on that?
Coordinator
Mar 5, 2008 at 11:52 AM
Did you deploy this dll: Microsoft.EPM.Events.TimesheetEvent.dll ?
Did you recompile it (you should not have to)?
Mar 5, 2008 at 1:10 PM
Edited Mar 5, 2008 at 1:54 PM
Simply forgot to add the publickeytoken to the assembly name.
Mar 10, 2008 at 12:45 PM
We have implemented this solution at my current client and it's working great.

Just one question though - the code runs against the Timesheet-Updated event, so it kicks off any time the timesheet is saved. Is there any reason why you couldn't use it against the Timesheet-Submitted event, so that it only runs when a user clicks Save and Submit?

Thanks!
Coordinator
Mar 10, 2008 at 2:23 PM
Yes you can read this section from the doc: Modifying the Event Handler
Apr 17, 2008 at 8:19 PM
I have a test environment where there are 3 servers for project 2007: web front end, app server, and database server. Does it matter where the DLL resides?

I'm running into some weird issues.
Coordinator
Apr 19, 2008 at 3:19 PM
Needs to be on app server

kshyr wrote:
I have a test environment where there are 3 servers for project 2007: web front end, app server, and database server. Does it matter where the DLL resides?

I'm running into some weird issues.

May 19, 2008 at 1:42 PM
I've correct a typo in my config file. I'm at least getting errors.


15:37:04 /PWA: FAILED to execute custom timesheet event OnUpdated, due to an exception: The request failed with HTTP status 401: Unauthorized.
15:37:04 /PWA: SubmitStatus: True; timesheet URL: http://nl-ap047-vm03/PWA/_vti_bin/psi/timesheet.asmx; statusing URL: http://nl-ap047-vm03:56737/IBMS/psi/statusing.asmx
15:37:04 /PWA:
15:37:04 /PWA: Total execution time: 0,35 seconds; SubmitStatus: 0,00 seconds


This one I solved by adding the user under which the event service is running to the admin group in project.

I'm now getting this:

15:40:43 /PWA: STEP 2 - Start event override for timesheet UID: 6986c888-9d0e-4c43-bc0b-0ccc2fd926a7
15:40:43 /PWA: STEP 3 - Statusing Impersonation for RES_UID: 199f7b94-a192-45d6-8251-b91e93c8d74a
15:40:44 /PWA: FAILED to execute custom timesheet event OnUpdated, due to an exception: Unable to connect to the remote server
15:40:44 /PWA: SubmitStatus: True; timesheet URL: http://nl-ap047-vm03/PWA/_vti_bin/psi/timesheet.asmx; statusing URL: http://nl-ap047-vm03:56737/IBMS/psi/statusing.asmx
15:40:44 /PWA: Timesheet: My Timesheet; Resource: Hemmen; Roelof van; Creator: Hemmen; Roelof van, Period: 743a93ab-ed29-4375-9f10-a1cb00936233
15:40:44 /PWA: Total execution time: 3,71 seconds; SubmitStatus: 0,00 seconds

Any ideas?
May 22, 2008 at 1:15 PM
Edited May 22, 2008 at 1:55 PM
I think the problem lies here:

http://nl-ap047-vm03/PWA/_vti_bin/psi/timesheet.asmx; statusing URL: http://nl-ap047-vm03:56737/IBMS/psi/statusing.asmx

vm03 is a web server and doesn't have the 56737 port available.
Jun 17, 2008 at 9:23 PM
Edited Jun 17, 2008 at 10:17 PM
When I go to build the solution for the 18596 release, I get the following error

Error 1 The name 'hostName' does not exist in the current context

This is for the PostEvent.cs file and highlights the following area.

 

string ssHostName = ss.HostName;

 

 

if (hostName.Length > 0) ssHostName = hostName;

 

 

if (impersonate)

 

 

return string.Format("{0}//{1}:56738/{2}/psi/{3}.asmx", ss.Protocol, ssHostName, sspName, wsName);

 

 

else

 

 

return string.Format("{0}/_vti_bin/psi/{1}.asmx", ss.Url, wsName);

 


Any ideas?
Jun 18, 2008 at 4:40 PM
I just removed that if (hostName.Length... line and it built without errors.

Thanks
Aug 22, 2008 at 7:19 AM
I had the same problem with the 401 Unauthorized. My fix was to add the account that was running my SSP (the same account ran the Eventing service) as an account in PWA and gave it Administrator group rights.
Sep 24, 2008 at 7:30 PM
I have  "Error 1001.  Exception occured while initializing the installation: System.IO.FileLoadException: Could not load file or assembly 'file:///C:\\WINDOWS\system32\PWA' or one of its dependencies.  Access is denied."  problem.  Any suggestion?
Dec 11, 2008 at 2:42 PM
Edited Dec 11, 2008 at 2:51 PM

Hi all
Did you manage to solve penchos problem? I have the same problem but it only happens for one user, with normal amount of lines in her timesheet.

I have checked projects/tasks/timesheets for any unregularities... if there are any, I'm not seeing it.

LOG Example below (tsautostatus log)
14:02:19: STEP 1 - Initialize Web Service urls
14:02:20: STEP 2 - Start event override for timesheet UID: f9c8581e-56d0-4800-8376-165b8caab401
14:02:20: STEP 3 - Statusing Impersonation for RES_UID: 58dd27fc-c0f1-4b35-970e-b4f8eff9dda4
14:04:00: FAILED due to an exception: The operation has timed out
14:04:00: SubmitStatus: True; timesheet URL: http://Servername/PWA/_vti_bin/psi/timesheet.asmx; statusing URL: http://Servername:56737/SSPNAME/psi/statusing.asmx
14:04:00: Timesheet: My Timesheet; Resource: RESNAME; Creator: RESNAME, Period: d2dd15e9-b63b-4bc6-b4da-08364e02f914
14:04:00: Total execution time: 100,20 seconds; SubmitStatus: 0,00 seconds

Feb 26, 2009 at 12:16 PM
I have successfully deployed solution on a single-server installation Project server test environment and everything works fine. But when I tried to do the same on a four-server (one SQL server, one application server, two load-balanced web front-end servers) environment for production, I have the same problem as scossio in second post. When user enters information into timesheet and press "save" button, PWA displays error "While communicating with the Project Server an error occured. Check connectivity with your administrator to determine if further action is necessary". Has anybody resolved this?

When I look at "manage queue" I have "failed and blocking correlation" Timesheet Update job with the following error information:

<?xml version="1.0" encoding="utf-16"?>
<errinfo>
  <general>
    <class name="Action canceled because there was a Server Event Service problem.">
      <error id="22002" name="GeneralActionCanceledBecauseServerEventServiceProblem" uid="4a634ac6-1b80-439e-b840-44caf466dd71" EventName="TimesheetUpdated" />
    </class>
    <class name="Queue">
      <error id="26000" name="GeneralQueueJobFailed" uid="8358cf39-1f51-4e97-bc91-cb30878c11a6" JobUID="cdad0dbc-04a1-46d8-b869-9c7a0703fb78" ComputerName="***" GroupType="TimesheetUpdate" MessageType="UpdateTimesheetMessage" MessageId="1" Stage="" />
    </class>
  </general>
</errinfo>

Checked event log on application server and it has following entries:

1) PSError: GeneralActionCanceledBecauseServerEventServiceProblem (22002)
Action cancelled because of a problem with the Project Server Event Service.
Event that was cancelled: TimesheetUpdated.


2) PSError: GeneralQueueJobFailed (26000)
A queue job has failed. This is a general error logged by the Project Server Queue everytime a job fails - for effective troubleshooting use this error message with other more specific error messages (if any), the Operations guide (which documents more details about queued jobs) and the trace log (which could provide more detailed context). More information about the failed job follows. GUID of the failed job: 97a8ec09-b4b5-486a-9266-2c188291f31f. Name of the computer that processed this job: *** (to debug further, you need to look at the trace log from this computer). Failed job type: TimesheetUpdate. Failed sub-job type: UpdateTimesheetMessage. Failed sub-job ID: 1. Stage where sub-job failed: (this is useful when one sub-job has more than one logical processing stages).

3) PSError: GeneralQueueJobFailed (26000)
A queue job has failed. This is a general error logged by the Project Server Queue everytime a job fails - for effective troubleshooting use this error message with other more specific error messages (if any), the Operations guide (which documents more details about queued jobs) and the trace log (which could provide more detailed context). More information about the failed job follows. GUID of the failed job: dbb0f29c-dae4-4da3-9605-781bbd31a0ac. Name of the computer that processed this job: *** (to debug further, you need to look at the trace log from this computer). Failed job type: NotificationMessage. Failed sub-job type: QueueJobFailedNotificationData2. Failed sub-job ID: 1. Stage where sub-job failed: (this is useful when one sub-job has more than one logical processing stages).


There are no entries in TimesheetEvent logs (log files aren't even created). So I have feeling that TimesheetEvent handler even doesn't start. But how could I find the source of problem?
Mar 17, 2009 at 6:28 AM
Originally I was getting this error:

3:36:08 PM /projectserver: FAILED to execute custom timesheet event OnUpdated, due to an exception: The request failed with HTTP status 401: Unauthorized.
3:36:08 PM /projectserver: SubmitStatus: True; timesheet URL: http://project/projectserver/_vti_bin/psi/timesheet.asmx; statusing URL: http://project:56737/SharedServices1/psi/statusing.asmx
3:36:08 PM /projectserver:
3:36:08 PM /projectserver: Total execution time: 33.14 seconds; SubmitStatus: 0.00 seconds

which I fixed as described above (by changing the permissions in PWA). However, then I was getting the following slightly different error:

12:14:29 PM /projectserver: STEP 2 - Start event override for timesheet UID: 62454431-a9fb-46ad-a493-52508772a331
12:14:29 PM /projectserver: STEP 3 - Statusing Impersonation for RES_UID: ab8bb33b-3141-4c2f-b8f0-d1df08d67f88
12:14:29 PM /projectserver: FAILED to execute custom timesheet event OnUpdated, due to an exception: The request failed with HTTP status 401: Unauthorized.
12:14:29 PM /projectserver: SubmitStatus: True; timesheet URL: http://project/projectserver/_vti_bin/psi/timesheet.asmx; statusing URL: http://project:56737/SharedServices1/psi/statusing.asmx
12:14:29 PM /projectserver: Timesheet: My Timesheet; Resource: Andrew Strong; Creator: Andrew Strong, Period: df417ece-d8e4-43ba-8361-eab7395e27a0
12:14:29 PM /projectserver: Total execution time: 0.36 seconds; SubmitStatus: 0.00 seconds

which no one has reported so far.

To fix this I changed the SSP User account (in Central Admin) to be the same account as the Events and Queue services are running as. Then I checked in the DB that this user had the correct permissions to the Shared Services DB (it already had). Finally I made this account a member of Administrators in PWA.

Problem solved! The tied mode works!

Next time I install, everything is going to run as the same domain account, it will save a lot of hassles.
Mar 18, 2009 at 10:47 PM
I had the above problem and when I debugged it, I found that it was at statusing.ImportTimeSheet line.

The sharepoint has the following accounts: configacct, webpool, sspwebpool. But the admin of the ca and ssp site collections are a seperate administrator a/c

The configacct ran the eventing service but I changed it to the administrator a/c and it still shows the error.

What is the significance of web.config in the C:\Program Files\Microsoft Office Servers\12.0\WebServices\Root folder? Should I change it, since it shows only configacct, webpool, sspwebpool? If so how?

Also when I used the pwa webservice instead of the 55737, I didn't get any errors. But timesheet didn't get imported. So what is the difference between using the virtual address and the actual address.
 
Another thing I noticed and maybe it is a bug of Project was if somebody changed an hour from a non-zero to a zero, then it does'nt show up in task update for project.

Thank you very much.

Saiju
Dec 22, 2009 at 4:22 PM

I am trying to solve an HTTP 401 since two weeks.  I have tried most of what is written here, now, I'm doing it a last time but this time I just tried to avoid any misunderstanding.

Can you explain me what does this sentence means ?   And what should I check related to it ?  Does the SSP Account be a member of some "group"?

 

I placed some more logging into the handler and confirmed that the user is: 'NT AUTHORITY\NETWORK SERVICE'. I have not changed the default configuration for Project, so I assume that this would always be the case.

Jun 27, 2011 at 2:27 PM
Edited Jun 27, 2011 at 2:31 PM

 

When executing the Project Server 2007 Timesheet & Statusing Customization I am getting the following error in the event viewer: 

Failed to execute custom timesheet event OnUpdated, due to an Exception: The request failed with HTTP status 401: Unauthorized.

The timesheet logfiles gives us the same error.

I have tried everything also what is described on the forum: http://epmtsst.codeplex.com/discussions/17904

The only lead I have on the problem is that the SharePoint logging gives me the following error when exectuing the event:

PSI Auth: User GEMAVEEN\fu-epmssp doesn’t have access to the PSI.

Environment: Windows 2003 SP2, EPMSSP account is running the event en queueing service.

The SSP account does have access to the Timesheet webservices (run IE as SSP admin account and type the url of the web service).

 Also tried: I changed the SSP User account (in Central Admin) to be the same account as the Events and Queue services are running as.