Pourquoi ce Fichier échec de l'écriture après une migration à SharePoint 2010?
J'ai migré mon MOSS 2007 de l'application (à la coutume de flux de travail d'approbation) pour Sharepoint 2010. J'ai eu ce morceau de code générique pour enregistrer les données
private void WriteToLog(String logInfo)
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
File.AppendAllText(LOG_FILE_PATH + string.Format("{0:" + LOG_FILE_FORMAT + "}", DateTime.Now) + ".log", logInfo);
});
}
J'ai fait un détacher une base de données de mise à niveau, il y a l'exécution de flux de travail (En cours de l'état) de l'environnement précédent qui devrait se poursuivre dans sharepoint 2010. Mais malheureusement, cela ne se produit pas , mon réplicateur de l'activité a généré une erreur. J'ai trouvé ça dans le journal sharepoint
Système.IO.IOException: Le périphérique n'est pas prêt.
au Système.IO._Erreur.WinIOError(Int32 errorCode, String maybeFullP ath)
au Système.IO.FileStream.Init(String p ath, FileMode mode, FileAccess accès, Int32 droits, Boolean useRights, FileShare part, bufferSize Int32, FileOptions options, SÉCURITÉ attributs sec attrs, Chaîne msgP ath, Boolean bFromProxy)
au Système.IO.FileStream..ctor(String p ath, FileMode mode, FileAccess accès, de la part de FileShare, bufferSize Int32, FileOptions options, d'une Chaîne msgP ath, Boolean bFromProxy)
au Système.IO.FileStream..ctor(String p ath, FileMode mode, FileAccess accès, de la part de FileShare, bufferSize Int32, FileOptions options)
au Système.IO.StreamWriter..ctor(String p ath, Boolean ajouter, Encoding, Int32 bufferSize)
au Système.IO.StreamWriter..ctor(String p ath, Boolean ajouter, Encoding)
au Système.IO.Fichier.AppendAllText(String p ath, Chaîne de contenu, Encoding)
à xyz.Utils.MailNotific ations.DisplayClass1._0()
chez Microsoft.SharePoint.SPSecurity.DisplayClass4._2()
chez Microsoft.SharePoint.Utilitaires.SecurityContext.RunAsProcess(CodeToRunElev auf s i indiqué secureCode)
chez Microsoft.SharePoint.SPSecurity.RunWithElev atedPrivileges(WaitCallback secureCode, Objet param)
chez Microsoft.SharePoint.SPSecurity.RunWithElev atedPrivileges(CodeToRunElev auf s i indiqué secureCode)
à xyz.Utils.MailNotific ations.WriteToLog(String logInfo)
à xyz.Utils.MailNotific ations.SPNotific ation(SPWeb applic ation, Chaîne sujet, Chaîne approbateur, Chaîne htmlBody)
à xyz.WF.L'approbation.ApprovalWorkFlow.logError_ExecuteCode(Object sender, EventArgs e)
au Système.Flux de travail.ComponentModel.De l'activité.RaiseEvent(DependencyProperty dependencyEvent, Object sender, EventArgs e)
au Système.Flux de travail.Les activités.CodeActivity.Execute(ActivityExecutionContext executionContext)
au Système.Flux de travail.ComponentModel.ActivityExecutor1.Execute(T activity, ActivityExecutionContext executionContext)
1.Execute(Activité de activité de, ActivityExecutionContext executionContext)
at System.Workflow.ComponentModel.ActivityExecutor
au Système.Flux de travail.ComponentModel.ActivityExecutorOper ation.Exécuter(IWorkflowCoreRuntime workflowCoreRuntime)
au Système.Flux de travail.Moment de l'exécution.Le planificateur.Run()
En bref ce qui semble être un IO exception. J'ai partagé le dossier du journal de l'emplacement, de l'accès au fichier de l'autorisation est exclue, l'application fonctionne très bien quand un nouveau flux de travail est commencé.
OriginalL'auteur Shankar | 2011-10-04
Vous devez vous connecter pour publier un commentaire.
Quels sont CHEMIN_FICHIER_JOURNAL et LOG_FILE_FORMAT?
Le IO exception pourrait être due soit vide ou non valide d'une autre façon.
Et quand un nouveau flux de travail est commencé, je reçois le journal de données correctement.Le problème est que lorsque le déplacement d'un flux de travail qui a été initié dans MOSS 2007
J'ai eu différentes journal des chemins d'accès aux fichiers mis dans mon MOSS 2007 et SharePoint 2010 d'application. J'ai répliqué que la structure de dossiers de mon MOSS 2007 de la machine dans le nouvel environnement et que j'ai conservé le fichier journal à l'emplacement du chemin d'accès dans le fichier de configuration. Il a travaillé! Merci pour votre exemple!
OriginalL'auteur Jeremy McGee
Il peut même se produire si vous essayez de se référer à un support amovible trop fréquemment. Dans mon cas, j'ai essayé d'afficher le reste de l'espace dans le disque par l'obtention de l'information à partir de la
DriveInfo.GetDrives()
méthode.Le code a été appelé dès que quelques octets ont été copiés sur l'appareil. Il est donc préférable de vérifier si ce n'est pas le cas. Faire la gestion des exceptions et laissez-les détails quand il est prêt.
OriginalL'auteur Vikesh Kumar
Je ne sais pas si cela est lié mais j'ai eu une console application prévue comme une tâche et la tâche gardé à défaut avec "Le périphérique n'est pas prêt" quand je suis allé à exécuter manuellement l'application de console en ligne de commande, on m'a montré une erreur que
"pour exécuter cette application, vous devez d'abord installer une des versions suivantes de la .NET framework bla bla".
OriginalL'auteur Emad