나는 실행 워크 플로가 진행 중 (있다, 나는 데이터베이스 분리 업그레이드를 수행 한 데이터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);
});
}
를 기록하는 코드의 일반적인 조각을했다 셰어 2010 년에 (사용자 지정 승인 워크 플로와) 내 MOSS 2007 응용 프로그램을 마이그레이션 상태)를 공유 지점 2010에서 계속해야합니다. 그러나 불행히도 그런 일은 발생하지 않습니다, 내 복제기 활동은 오류를 던졌습니다. 공유 지점 로그에서 이것을 찾았습니다.
System.IO.IOException : 장치가 준비되지 않았습니다. System.IO.FileStream.Init에서 System.IO._ Error.WinIOError (INT32의 errorCode, 문자열 maybeFullP의 ATH)
에서
(문자열 P는 ATH, 대한 fileMode 모드, FileAccess 액세스, INT32 권한, 부울 useRights, 파일 공유 점유율, INT32 BUFFERSIZE, FileOptions 옵션, 보안 특성 초 바인드합니다, 문자열 인 msgp의 ATH, 부울 bFromProxy) System.IO.FileStream..ctor에서
(문자열 P는 ATH, 대한 fileMode 모드, FileAccess 액세스, 파일 공유, 공유, INT32 BUFFERSIZE, FileOptions 옵션, 문자열 msgP ath, 부울 bFromProxy)
at System.IO.FileStream ..ctor (문자열 p ath, FileMode 모드, FileAccess 액세스, FileShare 공유, Int32 bufferSize, FileOptions 옵션)
at System.IO.StreamW riter..ctor (String p ath, 부울 추가, 인코딩 인코딩, Int32 bufferSize)
at System.IO.StreamWriter..ctor (String p ath, 부울 추가, 인코딩 인코딩)
at System.IO.File.AppendAllText (스트링 P의 ATH 문자열 컨텐츠 인코딩 인코딩)에서 Microsoft.SharePoint.Utilities.SecurityContext xyz.Utils.MailNotific ations.DisplayClass1._0()에서 Microsoft.SharePoint.SPSecurity.DisplayClass4._2
()
에서
.RunAsProcess (CodeToRunElev ated secureCode)
(Microsoft.SharePoint.SPSecurity.RunWithElev atedPrivileges (WaitCallback secureCode, Object param))
Microsoft.SharePoint. SPSecurity.RunWithElev atedPrivileges (CodeToRunElev을 ated 안전 코드) xyz.Utils.MailNotific ations.WriteToLog (문자열 logInfo)에서
xyz.Utils.MailNotific ations.SPNotific의 ATION에서
(SPWeb APPLIC ATION, 문자열 제목, 문자열 승인, 문자열에서는 HTMLBody) System.Workflow.Activities에서 System.Workflow.ComponentModel.Activity.RaiseEvent에서 xyz.WF.Approval.ApprovalWorkFlow.logError_ExecuteCode (객체 송신자있는 EventArgs E)
(DependencyProperty에 dependencyEvent 오브젝트 송신자있는 EventArgs E)
에서
. CodeActivity.Execute (ActivityExecutionContext executionContext)
at System.Workflow.ComponentModel.ActivityExecutor1.Execute(T activity, ActivityExecutionContext executionContext)
1.Execu 테 (활동 활동 ActivityExecutionContext를 ExecutionContext에) System.Workflow.ComponentModel.ActivityExecutorOper ation.Run (IWorkflowCoreRuntime workflowCoreRuntime)에서
at System.Workflow.ComponentModel.ActivityExecutor
는 System.Workflow.Runtime.Scheduler.Run()에서
는 간단히
이 보인다 입출력 예외 다. 로그 폴더 위치를 공유했습니다. 파일 액세스 권한이 배제되었습니다. 새 워크 플로가 시작될 때 응용 프로그램이 올바르게 작동합니다.
나는 나의 web.config 파일에서 다음이 <키 = "LogFileFormat"값을 추가 = "MMyyyyHH"/><= "D 키 ="LogFilePath에 "값을 추가 : \ 프로젝트 \ XYZ 로그 \를 \ "/> – Shankar
새 워크 플로가 시작되면 로그 데이터가 제대로 표시됩니다. 문제는 MOSS 2007에서 시작된 실행중인 워크 플로를 이동하는 경우입니다. – Shankar
MOSS 2007 및 SharePoint 2010에서 다른 로그 파일 경로를 설정했습니다. 신청. 새 환경에서 MOSS 2007 컴퓨터의 폴더 구조를 복제했으며 구성 파일에 로그 파일 경로 위치를 유지했습니다. 그것은 효과가있다! 당신의 리드를 가져 주셔서 감사합니다! – Shankar