Почему происходит сбой записи этого файла после миграции SharePoint 2010? - PullRequest
3 голосов
/ 04 октября 2011

Я перенес свое приложение MOSS 2007 (с настраиваемым рабочим процессом утверждения) на Sharepoint 2010. У меня был этот общий фрагмент кода для регистрации данных

private void WriteToLog(String logInfo)
{
    SPSecurity.RunWithElevatedPrivileges(delegate()
    {
        File.AppendAllText(LOG_FILE_PATH + string.Format("{0:" + LOG_FILE_FORMAT + "}", DateTime.Now) + ".log", logInfo);
    });
}

Я сделал обновление отсоединения базы данных, там выполняются рабочие процессы(В состоянии выполнения) из предыдущей среды, которая должна продолжиться в sharepoint 2010. Но, к сожалению, этого не произошло, моя активность репликатора вызвала ошибку.Я нашел это в журнале sharepoint

System.IO.IOException: устройство не готово.
в System.IO ._ Error.WinIOError (Int32 errorCode, String MaybeFullP ath)
в System.IO.FileStream.Init (строковое имя, режим FileMode, доступ к FileAccess, права Int32, логическое использование useRights, общий доступ к FileShare, буферный размер Int32, параметры FileOptions, SECURITY
atTRIBUTES sec attrs, строковое msgP ath,Boolean bFromProxy)
в System.IO.FileStream..ctor (String p ath, режим FileMode, доступ к FileAccess, общий доступ к FileShare, параметры типа3232 bufferSize, опции FileOptions, String msgP ath, Boolean bFromProxy)
в System.IO.FileStream..ctor (String p ath, режим FileMode, доступ FileAccess, общий доступ к FileShare, размер буфера Int32, параметры FileOptions)
в System.IO.StreamWriter..ctor (String p ath, логическое добавление, кодировка кодировки, размер буфера Int32)
в System.IO.StreamWriter..ctor (String p ath, Boolean append, Кодировка кодирования)
в System.IO.File.AppendAllText (String p ath, Stringсодержимое, кодировка)
в xyz.Utils.MailNotific ations.DisplayClass1._0 ()
в Microsoft.SharePoint.SPSecurity.DisplayClass4._2 ()
в Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess (CodeToRunElev изменил secureCode)
в Microsoft.SharePoint.SPSecurity.RunWithElev atedPrivileges (WaitCallback secureCode, параметр объекта)
в Microsoft.SharePoint.SPSecurity.RunWithElev atedPrivileges (CodeToRunElev за исключением 10 защищенных копий)..WriteToLog (String logInfo)
в xyz.Utils.MailNotific ations.SPNotifiction (применение SPWeb, строковый субъект, одобрение строк, String htmlBody)
в xyz.WF.Approval.ApprovalWorkFlow.logError_ExenderEventArgs e)
в System.Workflow.ComponentModel.Activity.RaiseEvent (DependencyProperty dependencyEvent, отправитель объекта, EventArgs e)
в System.Workflow.Activities.CodeActivity.Execute (ActivityExecutionContext executeContext)
в системе.ComponentModel.ActivityExecutor 1.Execute(T activity, ActivityExecutionContext executionContext)<br> at System.Workflow.ComponentModel.ActivityExecutor 1.Execute (Activity Activity, ActivityExecutionContext executeContext)
в System.Workflow.ComponentModel.ActivityExecutorOper ation.Run (IWorkflowCoreRuntime workflowCoreRuntime)
в System.Workflow.Runtime.undu

Короче говоря, это, похоже, исключение ввода-вывода.Я поделился расположением папки журнала, права доступа к файлу исключены, приложение работает нормально, когда запускается новый рабочий процесс.

Ответы [ 3 ]

5 голосов
/ 04 октября 2011

Что такое LOG_FILE_PATH и LOG_FILE_FORMAT?

Исключение ввода-вывода может быть вызвано, если оно пустое или недопустимое каким-либо другим способом.

2 голосов
/ 02 сентября 2012

Это может произойти, даже если вы слишком часто обращаетесь к съемному носителю.В моем случае я пытался отобразить оставшееся место на диске, получая информацию из метода DriveInfo.GetDrives().

Код был вызван, как только на устройство было скопировано несколько байтов.Итак, лучше проверить, если это не так.Выполните обработку исключений и дайте ей получить детали, когда они будут готовы.

0 голосов
/ 13 декабря 2013

Я не знаю, связано ли это с этим, но у меня было назначено консольное приложение в качестве задачи, и задача продолжала давать сбой с сообщением «Устройство не готово», когда я вручную запускал консольное приложение из командной строки показал ошибку, что

"чтобы запустить это приложение, сначала необходимо установить одну из следующих версий .NET Framework, бла-бла".

enter image description here

...