You can't create multiple System.Management.Automation runspaces in a web app for two or more different users

Original KB number:   3115600

Symptoms

When you try to allow multiple users to create System.Management.Automation runspaces in a web application and you're using implicit credentials (for example, credentials from impersonation), you notice that only the first user who accesses the web application can call the CreateRunspace method. All subsequent requests fail with an exception that resembles:

System.Management.Automation.PSInvalidOperationException
at System.Management.Automation.Remoting.Client.WSManClientSessionTransportManager.Initialize
at System.Management.Automation.Remoting.Client.WSManClientSessionTransportManager..ctor
at System.Management.Automation.Remoting.ClientRemoteSessionDSHandlerImpl..ctor
at System.Management.Automation.Remoting.ClientRemoteSessionImpl..ctor
at System.Management.Automation.Internal.ClientRunspacePoolDataStructureHandler..ctor
at System.Management.Automation.Runspaces.Internal.RemoteRunspacePoolInternal.CreateDSHandler
at System.Management.Automation.Runspaces.RunspacePool..ctor
at System.Management.Automation.RemoteRunspace..ctor
at System.Management.Automation.Runspaces.RunspaceFactory.CreateRunspace
at System.Management.Automation.Runspaces.RunspaceFactory.CreateRunspace

Cause

This behavior is by design.

Workaround

To create multiple System.Management.Automation runspaces in a web application for two or more different users, you must pass in explicit credentials.

More information

To create multiple remote management runspaces, make sure that the following conditions are true:

  • ASP.NET impersonation isn't enabled on the IIS virtual directory.
  • All Windows impersonation logic has been removed from your code.
  • Your users are prompted for a user name and password.