c# - 为什么在 SharePoint 2010 迁移后此文件写入失败?

标签 c# sharepoint sharepoint-2010 sharepoint-workflow

我将我的 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 中继续。但不幸的是,这并没有发生,我的复制器事件抛出了错误。我在共享点日志中找到了这个

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, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgP ath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String p ath, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at System.IO.StreamWriter..ctor(String p ath, Boolean append, Encoding encoding, Int32 bufferSize)
at System.IO.StreamWriter..ctor(String p ath, Boolean append, 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)<br/> at System.Workflow.ComponentModel.ActivityExecutor1.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 异常。

关于c# - 为什么在 SharePoint 2010 迁移后此文件写入失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7644591/

相关文章:

javascript - 从 Sharepoint 外部使用 Sharepoint REST API 和 Javascript 上传文件?

c# - 最近的事件 Webpart sharepoint 2010?

sharepoint-2010 - 在 VS2010 中使用 SharePoint 列表部署自定义 InfoPath 表单

sharepoint-2010 - 如何更新 sharepoint 2010 工作流程?

c# - 在 mysql 连接上“使用”

c# - VS 项目可执行文件的最终位置

sharepoint - Sharepoint with Office 2007 文档中的 ItemUpdate 后数据消失

java - 有没有办法检索 SharePoint 列表以更新 SQL 数据库(全部使用 Java 代码)?

c# - 如何删除表达式条件

c# - 从 Silverlight 调用 WCF 服务