Thursday, July 17, 2008

PerformancePoint 2007 Monitoring Server permissions

The Monitoring Server component of PerformancePoint 2007 is responsible for managing the user rights as far as being able to publish dashboards, edit existing dashboards, etc. This article got me most of the way there in understanding how to set up user permissions, but I think it's helpful to point out a few other items.

Dashboard Designer is the interface for Monitoring Server user security.
This was not immediately clear to me. There are two basic aspects to the permissions: global permissions (such as administrator rights, being able to publish new dashboards, etc.) and per-Dashboard permissions.

To configure server (global) role assignments:

In Dashboard Designer, hit the Office button and then the Options button on the resulting menu:



On the resulting Server tab, hit the Connect button:



Once it logs in, hit Permissions:



On the resulting Permissions dialog, you can add users in DOMAIN\name form, specifying their server (global) role:



To configure permissions for individual dashboards:

Open the desired dashboard On its Properties tab, there is a Permissions section at the bottom:



Add your users (DOMAIN\name format again) and specify Reader or Editor roles. After changing these permissions, you must publish the dashboard.

Vista Page File in Netherworld

I had an odd problem with a Windows Vista SP1 installation. I suddenly began getting "your computer is low on memory" warnings when nothing really had changed with the way I use the machine. I looked at Task Manager and saw that it was showing page file use of ~1700M / ~1800M. When I went to Advanced System Settings (System Properties) to examine the page file size (Advanced tab, Performance settings, then the Advanced tab again) it showed the total page file size as.... 0 MB!

I knew I had enabled a page file previously when I set up the machine, so I rebooted--and it still showed 0 MB for the page file size. So, I went to assign a new 4096 MB page file. When I did this, it gave me a message stating that pagefile.sys already existed (!) and asked if I wanted to overwrite it. I half expected the machine to die painfully when I approved this action, but it did not... and knock on particleboard, I haven't gotten any of the warnings since.

Thursday, July 10, 2008

WCF in .NET 3.5 SP1 and Enterprise Library - TypeInitializationException

I have been fighting a maddening issue. It seems that if you have a WCF service under the .NET 3.5 SP1 beta that is impersonating the caller--either using the ServiceModel pipeline or ASP.NET Compatibility Mode--calls to Enterprise Library assemblies (at least for logging or data access needs) will fail with the following exception:
"The type initializer for 'Microsoft.Practices.EnterpriseLibrary.Logging.LogEntry' threw an exception."
When you dig for the inner exception, you find:
Could not load file or assembly 'System.Management, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. Access is denied.
I've tried numerous things to get around this, such as:
  • Changing the application pool identity to Local System
  • Directly referencing System.Management in the service assembly
  • Adding System.Management (and the Ent Lib assemblies, for that matter) to the <assemblies> node in the web.config
** Update - 11 Jul 2008: Client configuration changes were required to correct the problem. In the client's app.config, configure a behavior for the endpoint to allow impersonation:
<client>
<endpoint address="http://server/WcfService1/Service1.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService1"
contract="ServiceReference2.IService1" name="BasicHttpBinding_IService1"
behaviorConfiguration="endpointBehavior"/>
</client>
<behaviors>
<endpointBehaviors>
<behavior name="endpointBehavior">
<clientCredentials>
<windows allowedImpersonationLevel="Impersonation"/>
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>
Then, for some reason, an IIS reset was needed to make the client start working. This article describes the problem in detail.

Here's the thread over on the Enterprise Library forums where I was corresponding about the issue.