J'ai une application Windows Forms qui provisionne les comptes d'utilisateur dans Exchange à l'aide des cmdlets Powershell et Exchange2007. Il existe un seul formulaire pour cette application qui prend les informations pour le nouvel utilisateur, puis exécute les commandes Powershell. Comme un bon programmeur, je viens de refactoriser le code et de sortir tous les appels Exchange et Active Directory et de les mettre dans des classes séparées. Sous la forme Windows, j'appelle le code suivant dans un bouton événement Click:Impossible d'accéder à une erreur d'objet éliminé sur l'appel de la bibliothèque de classes externe
ExchangeMailboxFunctions exFuncs = new ExchangeMailboxFunctions();
exFuncs.CreateNewMailbox(username, userPrincipalName, OU, txtDisplayName.Text, txtFirstName.Text, txtInitials.Text, txtLastName.Text,
txtPassword1.Text, ckbUserChangePassword.Checked, mailboxLocation);
Dans la classe elle-même, je donne les résultats suivants:
RunspaceConfiguration config = RunspaceConfiguration.Create();
PSSnapInException warning;
Runspace thisRunspace;
public ExchangeMailboxFunctions()
{
InitializePowershell();
}
private void InitializePowershell()
{
try
{
thisRunspace = RunspaceFactory.CreateRunspace(config);
config.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.Admin", out warning);
thisRunspace.Open();
}
catch (Exception ex)
{
throw new Exception(string.Format("Could not initialize Powershell: {0}", ex.Message));
}
}
public void CreateNewMailbox(string username, string userPrincipalName, string OU, string DisplayName, string FirstName, string Initials,
string LastName, string Password, bool ChangePasswordNextLogon, string MailboxLocation)
{
try
{
using (Pipeline thisPipeline = thisRunspace.CreatePipeline())
[Set a bunch of pipLine parameters here]
thisPipeline.Invoke();
}
catch (Exception ex)
Le thisPipeline.Invoke provoque l'erreur et je aucune idée de ce qui est éliminé. Ce code fonctionnait parfaitement quand il était dans le code derrière le formulaire. J'ai également certaines méthodes Active Directory que j'ai déchiré dans une bibliothèque de classes séparée et ils semblent fonctionner correctement. Que dois-je faire pour que cela cesse de se produire?
Merci!
Yup, c'est ce qui se passe Il semble aussi y avoir un autre "}" manquant pour la fonction. – JasonMArcher