使用 Windows Azure 上嵌入的 RavenDB 写入日志文件失败
Posted
技术标签:
【中文标题】使用 Windows Azure 上嵌入的 RavenDB 写入日志文件失败【英文标题】:Failure writing to log file with RavenDB Embedded on Windows Azure 【发布时间】:2013-05-21 19:00:09 【问题描述】:我在 Windows Azure 上运行一个 MVC 网站并使用嵌入式 RavenDB。如果网站是“冷的”(从 Azure 实例卸载),我会在第一次访问网站时收到以下错误消息:
“/”应用程序中的服务器错误。
写入日志文件失败
描述:执行过程中发生了未处理的异常 当前的网络请求。请查看堆栈跟踪以获取更多信息 有关错误的信息以及它在代码中的来源。
异常详情: Microsoft.Isam.Esent.Interop.EsentLogWriteFailException:失败 写入日志文件
来源错误:
在执行过程中产生了一个未处理的异常 当前的网络请求。有关原产地和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。
堆栈跟踪:
[EsentLogWriteFailException:写入日志文件失败] Microsoft.Isam.Esent.Interop.Api.Check(Int32 err) +21 Microsoft.Isam.Esent.Interop.Api.JetInit(JET_INSTANCE& 实例) +23 Raven.Storage.Esent.TransactionalStorage.Initialize(IUuidGenerator uuidGenerator, OrderedPartCollection`1 documentCodecs) +309
[InvalidOperationException:无法打开事务存储: C:\DWASFiles\Sites\reflix\VirtualDirectory0\site\wwwroot\App_Data\Data] Raven.Storage.Esent.TransactionalStorage.Initialize(IUuidGenerator uuidGenerator, OrderedPartCollection`1 documentCodecs) +443 Raven.Database.DocumentDatabase..ctor(InMemoryRavenConfiguration 配置)+994 Raven.Client.Embedded.EmbeddableDocumentStore.InitializeInternal() +313 Raven.Client.Document.DocumentStore.Initialize() +463 Reflix.MvcApplication.InitializeRavenDB(字符串数据目录,布尔值 rethrowException) +135 Reflix.MvcApplication.Application_Start() +131
[HttpException (0x80004005):无法打开事务存储: C:\DWASFiles\Sites\reflix\VirtualDirectory0\site\wwwroot\App_Data\Data] System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext 上下文,HttpApplication 应用程序)+9859441 System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext、HttpContext 上下文、MethodInfo[] 处理程序)+118 System.Web.HttpApplication.InitSpecial(HttpApplicationState 状态, MethodInfo[] 处理程序、IntPtr appContext、HttpContext 上下文)+172 System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext、HttpContext 上下文)+336 System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +296
[HttpException (0x80004005):无法打开事务存储: C:\DWASFiles\Sites\reflix\VirtualDirectory0\site\wwwroot\App_Data\Data] System.Web.HttpRuntime.FirstRequestInit(HttpContext 上下文) +9873784 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext 上下文) +101 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest WR,HttpContext 上下文)+254
版本信息:Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.18033
如果我等一两分钟,网站就会正常运行。很明显,这是一个首次启动的问题。有人知道如何解决这个问题吗?
我的配置:
MVC 4 .NET 4.5 RavenDB 2.0.2360更新: Azure 团队正在将此视为 Azure 网站可能存在的缺陷。更多更新,我一听到任何消息。
【问题讨论】:
您使用的是 Azure 网站 还是 Azure Web 角色? 这个问题加一个,遇到同样的问题! 【参考方案1】:这已被确认为 Azure 网站中的一个错误,现已推出。我没有任何其他详细信息,但该网站现在可以正常工作(2013 年 8 月 30 日),并且我没有对代码进行结构更改。
【讨论】:
【参考方案2】:查看事件日志,它会为您提供更多信息。 看起来 某事 阻止了正确写入日志,检查权限,特别是,您可能有 CREATE_FILE 权限,但没有 WRITE 权限
【讨论】:
后续问题:在嵌入式模式下运行时如何查看日志? 我的意思是,我知道有一个logs
文件夹,但其中唯一的东西是一些二进制 RVN.log
文件和一些 jrs
文件在文本编辑器。我必须将它们复制到本地服务器并复制到logs
文件夹吗?以上是关于使用 Windows Azure 上嵌入的 RavenDB 写入日志文件失败的主要内容,如果未能解决你的问题,请参考以下文章
Windows 上安装 Azure PowerShell及Azure PowerShell部署虚拟机
使用 Windows Azure 在 Android 上推送通知
Windows 10 上带有 Azure AD 示例的 Flask 应用程序
在 Windows 8 上使用 Microsoft 帐户的 Azure ACS 2.0