Cascade Skyline - with Microsoft Logo and Project Support header - author Brian Smith

  • Brian Smith's Microsoft Project Support Blog

    Project Server 2010: An unknown error has occurred in Project Center, Resource Center or Tasks

    • 11 Comments

    Thanks to my friends at one of our great TAP partners for this resolution. I love it when customers solve their own problems, and love it even more when they tell me about it so I can tell you.  Happy to give them credit for the resolution too – but only when I hear back from them that they are ok with the glory… ***Update *** and have the all clear to name Accenture, and Kranti Deshpande.  Thanks for all you work on the TAP and beyond!

    The error is in red text where the grid should be – and isn’t a normal pop-up that you’d expect from SharePoint, but just text.  This appears on the Project Center, Resource Center and also Tasks and Timesheet pages

    image

    No scripts errors, but I did find some useful things in the Event Log when I reproduced the error.  I have copied this at the foot of this blog – mainly there for the search engines, but Event ID 3, WebHost is the important piece. Nothing jumped out at me from the ULS logs – I think this is more an IIS to client issue rather than SharePoint – but I did see some http binding messages (BasicHttpBinding) at about the right time

    The issue was that in IIS Manager the Authentication for the site was set to use Windows Authentication, but in the Advanced Settings, Extended Protection was set to a value other than Off.

    image

    Just setting back to Off resolved the issues – and no IISReset required.

    And for the search engines – the error…

    Log Name:      Application
    Source:        System.ServiceModel 3.0.0.0
    Date:          7/2/2010 3:44:42 PM
    Event ID:      3
    Task Category: WebHost
    Level:         Error
    Keywords:      Classic
    User:          domain\user

    Computer:      servername
    Description:
    WebHost failed to process a request.
    Sender Information: System.ServiceModel.ServiceHostingEnvironment+HostingManager/19339735
    Exception: System.ServiceModel.ServiceActivationException: The service '/_vti_bin/PSI/ProjectServer.svc' cannot be activated due to an exception during compilation.  The exception message is: The extended protection settings configured on IIS do not match the settings configured on the transport.  See inner exception for details.. ---> System.NotSupportedException: The extended protection settings configured on IIS do not match the settings configured on the transport.  See inner exception for details. ---> System.InvalidOperationException: The ExtendedProtectionPolicy.PolicyEnforcement values do not match.  One policy has a value of Always, while the other has a value of Never.  These values must match exactly.
       --- End of inner exception stack trace ---
       at System.ServiceModel.Channels.HttpChannelListener.ApplyHostedContext(VirtualPathExtension virtualPathExtension, Boolean isMetadataListener)
       at System.ServiceModel.Channels.HttpTransportBindingElement.BuildChannelListener[TChannel](BindingContext context)
       at System.ServiceModel.Channels.BindingContext.BuildInnerChannelListener[TChannel]()
       at System.ServiceModel.Channels.MessageEncodingBindingElement.InternalBuildChannelListener[TChannel](BindingContext context)
       at System.ServiceModel.Channels.TextMessageEncodingBindingElement.BuildChannelListener[TChannel](BindingContext context)
       at System.ServiceModel.Channels.BindingContext.BuildInnerChannelListener[TChannel]()
       at System.ServiceModel.Channels.Binding.BuildChannelListener[TChannel](Uri listenUriBaseAddress, String listenUriRelativeAddress, ListenUriMode listenUriMode, BindingParameterCollection parameters)
       at System.ServiceModel.Description.DispatcherBuilder.MaybeCreateListener(Boolean actuallyCreate, Type[] supportedChannels, Binding binding, BindingParameterCollection parameters, Uri listenUriBaseAddress, String listenUriRelativeAddress, ListenUriMode listenUriMode, ServiceThrottle throttle, IChannelListener& result, Boolean supportContextSession)
       at System.ServiceModel.Description.DispatcherBuilder.BuildChannelListener(StuffPerListenUriInfo stuff, ServiceHostBase serviceHost, Uri listenUri, ListenUriMode listenUriMode, Boolean supportContextSession, IChannelListener& result)
       at System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost(ServiceDescription description, ServiceHostBase serviceHost)
       at System.ServiceModel.ServiceHostBase.InitializeRuntime()
       at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)
       at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
       at System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(String normalizedVirtualPath)
       at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath)
       --- End of inner exception stack trace ---
       at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath)
       at System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(String relativeVirtualPath)
    Process Name: w3wp
    Process ID: 4580

    Technorati Tags: ,
  • Brian Smith's Microsoft Project Support Blog

    Microsoft Office Project Server 2007 and SQL Server 2005 Analysis Services - Building Cubes

    • 57 Comments

    Following on from my permissions piece with Project Server I will extend this logic to the service accounts and permissions to get a successful cube build.  I'll start with an explanation of what goes on when building cubes which should help any troubleshooting you do.

    When you click on Build Cube then this kicks of a sequence of events starting with the save of any new or changed data in the cube settings - such as the server or cube name.  Next a job will be placed on the Project Server queue requesting a cube build.  This job will be picked off the queue and processed by the Microsoft.Office.Project.Server.Queuing.exe process, which will spawn the ProjectServerOLAPCubeGenerator.exe process. Both of these processes will be running under the identity of the admin account of the SSP - in my last posting this is the SSPAdmin.  So this user needs to be an admin within Analysis Services so it can communicate through DSO to Analysis Services.  This permission is added through a SQL Management Studio connection to Analysis Services by right-clicking the instance name and then selecting Properties, selecting the Security tab and then adding the user (a restart of the Analysis Services service at this point will also unsure the running instance is aware of the permission change) .  This process also needs to access the repository of meta data used to define the cubes.  This repository is detailed in KB 921116 (as are some other pre-requisites for multi server environments) and is in a share on the Analysis Services server called MSOLAPRepository$.  If you have a single server then the share will not be used - instead the direct directory location of C:\Program Files\Microsoft SQL Server\MSSQL.X\OLAP\DSO9. (The X will be a number relating to the installation of analysis services).  Therefore SSPAdmin, or your equivalent service account will need read and write access to this directory - and if you are in a multi server environment then also read/write access via the share.

    The next activity in the cube building process is the Analysis Services executable - MSMDSRV.exe -  actually building the cube based on the instructions given by the ProjectServerOLAPCubeGenerator.exe process.  This executable runs under the identity of the account running the SQL Server Analysis Services (MSSQLSERVER) (or named instance) service.  I'll refer to this account as ASAdmin  So this account needs to be able to read the reporting database of the Project Server instance, which is in effect the staging tables for the cubes.  Adding a login to SQL Server for ASAdmin with datareader role on ProjectServer_Reporting (or whatever reporting database name you are using) achieves this.  That should be all you need to get a cube building.

    So basically the SSPAdmin needs to be an admin in Analysis Services with read/write access to the repository.  ASAdmin needs datareader access to the reporting database.

    Also remember - when building a cube your application server is talking to/from your SQL Server Analysis Services server - when viewing or building views in Project Web Access your client PC is talking directly to your Analysis Services server (and each client needs the ASOLEDB 9.0 components).  Make sure any firewalls allow for this traffic.

    The default instance of Analysis Services will normally be listening on port 2383.  If you have named instances then the SQL Browser service will need to be running on the server to tell give clients a port for the named instance.  The SQL Browser is normally on port 2382.

    Named instances of Analysis Services will have other dynamically allocated ports. These can be discovered by looking in the configuration file for SQL Server Browser.  Open the msmdredir.ini file located at %Program files%\Microsoft SQL Server\90\Shared\ASConfig and look at the <Instances> section in it.  On 64 bit machines this may be in the Program Files (x86) directory.
    Here is an example:-

    <Instances>
         <Instance>
             <Name>AS2005</Name>
             <Port>1259</Port>
         </Instance>
     </Instances>

    and would mean your AS2005 instance is listening on port 1259.

    For my next post, rather than cluttering this one, I will show a variety of the errors from both ULS logs and Event logs that can appear if the above settings are not in place.

    Technorati Tags:

  • Brian Smith's Microsoft Project Support Blog

    Waiting for Resources? - What happens when you provision a new Project Web Access site

    • 46 Comments

    One problem I have seen a few times is the Project Web Access site provisioning running into issues.  If it fails completely then the error messages are pretty good - and you can generally resolve the issue and re-try and everything will be good.  However, what do you do when it just sits on "Waiting for Resources" and nothing happens?  The quick answer is that this relies on the SharePoint Timer Service and a couple of Shared Service Provider services that can be viewed through Timer Job Definitions (Shared Services Timer Job and Project Server Synchronizing Job for 'SharedServices1' - or whatever yours is called).  If these are not running then you will be "Waiting for resources" for a very long time!  Also there could be multiple versions of the timer jobs if you have multiple SSPs so it can get confusing, particularly as the first one does not differentiate by name.  (Clue - the JobId in the URL for the job is the Id of the timer job row in the Objects table in SharePoint_Config database, and the Properties column from this row will lead you to the Guid of the TargetSharedResourceProvider - which will be the Id of the Shared Services Provider also in the same table.)

    So to dig a little deeper so you can understand where it might be stuck I'll explain what is going on in the background which hopefully will help you find what is stopping it from working.

    So, step 1 - you have been on the Create a Project Web Access Site page (CreatePWA.aspx) and entered all the details, and it goes back to the Manage Project Web Access Sites (ManagePWA.aspx) page and just sits there.  At that point a row has been added to the MIPScheduledJob table in the SharedService1_DB (your database name may vary - this is the default).  This is a pre-synchronizing job for the site, and is added to the database by the account running the Shared Services Provider application pool.

    Step 2.  The Shared Service Timer Job picks up the row from this database table and adds a row to the SharePoint_Config database Objects table.  In the properties field of this table is some XML describing the site to be built, database names etc.  This timer job will run as the account of the farm administrator (i.e. the account running the OWSTIMER service)

    Step 3.  The Project Server Synchronizing Job for 'SharedServices1' sees this row and actions it by creating the site, creating the database and then configuring the instance of PWA.  If everything is working you see the status change on the ManagePWA page as these different stages are processed, and finally it will say Provisioned!  Again, this timer service runs as the farm administrator.

    Waiting for resources will be seen until the early stages of step 3.

    So check all your services are running and your timer jobs are present and enabled and all should be good.  One other workaround that generally gets things moving again is to create  a new Shared Services Provider - which will then create new timer jobs and overcome any underlying issues.  The web applications can then be associated with the new SSP, the new SSP can be made the default if you are not using the old one for anything else, and the old one could be deleted.

    I mention the databases here on the condition that you can look - but don't touch! 

    Technorati Tags: Project Server 2007

  • Brian Smith's Microsoft Project Support Blog

    To Add or Update - That is the Question. The PSI and custom fields - Updated

    • 49 Comments

    This posting was inspired by a support call concerning custom fields - but does apply to other entities in the Project dataset and others.  The question was around the QueueUpdateProject and QueueAddToProject web services calls that are part of the Project web service in the PSI.  If you use the wrong call then the error message is usually helpful telling you you can't add with the update call and vice versa.  But the thing that does catch people out are the custom fields... 

    By default a project dataset will not contain any rows in the ProjectCustomFields data table unless they have either been set (through PWA, Project Professional or the PSI) or they contain formulae, or are based on a lookup table with a default value defined.  So for a freshly created project (from Project Professional) when looking at Project Information it appears that all custom fields are there - and some may even look to have values (number fields will show 0) whereas in fact once saved there are no rows in the dataset for project custom fields (except as mentioned above - formulae based, and default lookup tables values).  So if you want to set a custom field via the PSI your code should check if there is a row already present for that custom field (identify by the MD_PROP_UID or MD_PROP_ID) and if it is there then you can change the value and use QueueUpdateProject - and if it doesn't exist then you will need to create a new blank project dataset and add a new project custom field row and set the values (including a new GUID for CUSTOM_FIELD_UID, the projects PROJ_UID and the MD_PROP_UID for the field you want to set) then use the QueueAddToProject.

    (Update - Although this logic holds true for adding/updating tasks to a Project dataset you can in fact ADD a new custom field row to an existing project dataset and use the QueueUpdateProject method - and it will work.  You do not need to use the QueueAddToProject method - although this will work too, assuming it only contains the additional custom field row!  Thanks to Martin for pointing this out - through experience.)

    Just to confuse the situation we have a bug currently when using the PSI or creating an Activity Plan/Proposal that can duplicate custom field rows.  If you have any project level custom fields that use graphical indicators but do not have formulae then you can get duplicate custom field rows created for each of them.  I'm not sure yet if the bug is they get created at all (as they do not get created in Project Professional projects) or that they appear twice. I will post an update when I have more information.  For now a quick workaround is to not use graphical indicators for this type of field.  Cleaning up existing ones may be a little more challenging and I would suggest a support call.  Although this causes problems for the PSI when updating these duplicated rows (so this affects changes for Activity Plans , Proposals and use of the Edit Project Properties in PWA) you can still make changes in Project Professional through the Project Information dialog.

    The errors you might see - (these are generic so you could see these errors for other root causes):-

    When updating a custom field for an Activity Plan or Proposal you will get an error dialog box:-

    Windows Internet Explorer
    An error has occurred when saving your project to the server. Please contact your system administrator for assistance.
    [GeneralUnhandledException]

    When updating a custom field through Project Center's Edit Project Properties option the error will display at the top of the page in red:-

    The project could not be saved due to the following reason(s):

    An unknown error has occured (occurred is mis-spelled in the error).

    When updating through the PSI this will result in a GeneralUnhandledException.

    One final point - setting or updating a project custom field for an existing Project Professional created project through the PSI or Edit Project Properties will also introduce this problem.  The extra duplicates will get added as well as the custom field you are setting.

  • Brian Smith's Microsoft Project Support Blog

    How to check a project in through the database

    • 35 Comments

    OK, so that was a mean trick.  Using a title like that to get you and your search engine to read about why you shouldn't check a project in through the database.  In the words of Douglas Adams "It doesn't necessarily get you where you wanted to go, but it turns out to be where you needed to be."

    With each successive version of Project Server we try to discourage direct database access more and more - and with 2007 we don't even document the ones we want you to stay away from.  There may be times when you do need to get to these databases to read stuff if it isn't available through the PSI or reporting database - and some very rare cases where bugs may lead to some database update being needed to resolve some data issue.  But in almost all cases a checked out project can be checked in without resorting to SQL.  The following steps are similar to how you would troubleshoot other queue problems - but are presented here specifically to work with checked out projects.

    1. The best first step if a project that you have closed and checked in says it is still checked out is to open read-only, then close - and then leave a short while and try and re-open.  This should flush through any pending check-in that gets caused by the closing bug in Project Professional 2007.  As mentioned before - if it is a large project or your server is VERY busy the save can take a little while - so patience may also be required.

    2. Assuming step 1 didn't help then time to look at the queue.  First we need to confirm it is still working.  A couple of options here - first in Manage Queue add the Job Completion State of "Success" to the view.  This should then show you what has been working.  A successful job in the recent past - or a job that says "Processing" and the % complete is still increasing are a good indication that things are working (just not for you).  A second check if this doesn't make things clear is to look at Task Manager on the Application Server (Right click the task bar and select Task Manager is a quick way to get this running) and check that you see multiple instances of Microsoft.Office.Project.Server.Queuing.exe on the Processes tab.  There should be (Number of Shared Services Providers with provisioned PWA site) + 1 instances.  So in most cases 2 - but possibly more.  Just seeing 1 is an indication that when the service started the database was inaccessible to the service so it could start the SSP specific instances.  Re-starting the service should resolve this.  just because in Administrative Tools, Services it says "Started" next to the service does not mean it is working!

    3. So we know the queue is working and I am guessing at this point that you have a "Waiting to be processed" against a Project check-in job.  And you may have selected a "Force check-in" several times too.  The word "Force" here is a misnomer - and should really be worded "Please check-in when you are ready".  If the job is waiting then it is waiting for something, and no amount of reboots, queue stop/starts will shift it.  We need to look deeper to find out what's holding things up.  In Manage Queue set the Job History to go back far enough to see any activity for the problem project, set the Filter Type to By Project and then just select the project you are interested in.  This should then show your pending check-in job as well as what is blocking it.

    image

    4. So now you should see what is blocking the check-in, and the owner will show who was the last person doing something.  In my case it was a save from Project Professional that hadn't complete (still "getting queued" - which means data is coming from the client cache to the message queue). 

    5. If you are not the owner of the blocking job then get that person to repeat step 1.  This should allow the job to complete; although in the queue it may show as a cancel and re-save.  In this case the cancellation is done by the server as the save was in the very early stage.  If this worked then all is now well and you can get at the project.  This is the best resolution because NO DATA IS LOST!

    6. If you can't find the owner, or they have since deleted their local cache then step 5 will not be possible and the only option then is to cancel the job (after also checking the Advanced Option, Cancel jobs getting enqueued and optionally un-checking Cancel subsequent jobs in the correlation.)  Once the job is canceled then any subsequent jobs should complete OK and you are back in business.  Any changes made by the user who was saving WILL BE LOST!

    And if this doesn't work for you and you really do need to check-in through the database - let me know!

    Technorati Tags: Project Server 2007

Page 4 of 97 (485 items) «23456»