我将我的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: The device is not ready. at System.IO._Error.WinIOError(Int32 errorCode,String maybeFullP ath) at System.IO.FileStream.Init(String p ath,FileMode mode,FileAccess access,Int32 rights,Boolean useRights,FileShare share,Int32 bufferSize,FileOptions options,SECURITY atTRIBUTES sec attrs,String msgP ath,Boolean bFromProxy) at System.IO.FileStream..ctor(String p ath,FileOptions options) at System.IO.StreamWriter..ctor(String p ath,Boolean append,Encoding encoding,Int32 bufferSize) at System.IO.StreamWriter..ctor(String p ath,Encoding encoding) at System.IO.File.AppendAllText(String p ath,String contents,Encoding encoding) at xyz.Utils.MailNotific ations.DisplayClass1._0() at Microsoft.SharePoint.SPSecurity.DisplayClass4._2() at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElev ated secureCode) at Microsoft.SharePoint.SPSecurity.RunWithElev atedPrivileges(WaitCallback secureCode,Object param) at Microsoft.SharePoint.SPSecurity.RunWithElev atedPrivileges(CodeToRunElev ated secureCode) at xyz.Utils.MailNotific ations.WriteToLog(String logInfo) at xyz.Utils.MailNotific ations.SPNotific ation(SPWeb applic ation,String subject,String approver,String htmlBody) at xyz.WF.Approval.ApprovalWorkFlow.logError_ExecuteCode(Object sender,EventArgs e) at System.Workflow.ComponentModel.Activity.RaiseEvent(DependencyProperty dependencyEvent,Object sender,EventArgs e) at System.Workflow.Activities.CodeActivity.Execute(ActivityExecutionContext executionContext) at System.Workflow.ComponentModel.ActivityExecutor1.Execute(T activity,ActivityExecutionContext executionContext) at System.Workflow.ComponentModel.ActivityExecutor 1.Execute(Activity activity,ActivityExecutionContext executionContext) at System.Workflow.ComponentModel.ActivityExecutorOper ation.Run(IWorkflowCoreRuntime workflowCoreRuntime) at System.Workflow.Runtime.Scheduler.Run()
简而言之,这似乎是IO异常.我已共享日志文件夹位置,排除了文件访问权限,应用程序在启动新工作流时工作正常.
解决方法
什么是LOG_FILE_PATH和LOG_FILE_FORMAT?
如果其中任何一个为空或以其他方式无效,则可能导致IO异常.
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|