随机查询抛出异常:“;没有足够的存储空间来完成这个操作”;

本文关键字:存储空间 操作 抛出异常 查询 随机 | 更新日期: 2023-09-27 18:27:24

我正在开发一个MVC 4项目,该项目使用NHibernate(版本4.0.0.4000)。目前,我将会话工厂配置为使用位于C:''Db目录中的SQL CE 3.5文件。

string connString = "Data Source=C:'Db'myDb.sdf; Max Database Size=3096; Persist Security Info=false";
factory = Fluently.Configure()
    //per Sql CE 4.0 usare MsSqlCeConfiguration.MsSqlCe40
    .Database(MsSqlCeConfiguration.Standard.ConnectionString(connString)
        .ShowSql()
        .MaxFetchDepth(3)
        .Driver<MySqlServerCeDriver>())     // FIX truncation 4000 chars
    .Mappings(m => m.FluentMappings.AddFromAssembly(Assembly.GetExecutingAssembly()))
    .ExposeConfiguration(c =>
    {
        c.SetProperty("cache.provider_class", "NHibernate.Cache.HashtableCacheProvider");
        c.SetProperty("cache.use_query_cache", "true");
        c.SetProperty("command_timeout", "120");
    })
    // FIX BUG per SqlCompact quando si salvano colonne identity
    .ExposeConfiguration(c => c.SetProperty("connection.release_mode", "on_close"))
    .BuildSessionFactory();

我遇到的问题是,有时(像一天中的一次)我在执行随机查询(甚至是简单的选择查询!)时会出现以下错误:

没有足够的存储空间来完成此操作

在剩下的时间里,一切都在完美地工作。不用说,我有超过300GB的可用空间。我进行了搜索,但没有发现任何与我的上下文相关的错误。我开始认为db.sdf文件本身有问题:我用SQLServer2008R2创建了它,但随后用"Database.NET3.5"进行了一些更改,这是一个非常方便的小更改工具。可能是我这样做在某种程度上破坏了.sdf文件吗?

随机查询抛出异常:“;没有足够的存储空间来完成这个操作”;

SQL Server Compact 3.5不是为ASP.NET设计的,也不受ASP.NET支持。这很可能是您出现错误的原因。请改用SQL Server Compact 4.0 SP1。