在运行时将SQL Server CE文件添加到app_data文件夹中

本文关键字:app data 文件夹 添加 文件 运行时 SQL Server CE | 更新日期: 2023-09-27 17:59:09

我使用的是启用多租户的Orchard CMS。每个租户在App_data文件夹中都有自己的SQL Server CE数据库。在应用程序运行时,我通过将租户数据从其他位置复制到App_Data文件夹来创建新租户。

问题是,如果我点击租户,它的.sdf没有加载,我会得到一个错误

您正在查找的页面不存在

如果我重新启动IIS,它就会开始工作。我的猜测是,如果在应用程序运行时在app_data文件夹中添加任何内容,则这些数据不会加载到w3wp进程中。这个问题有什么解决办法吗?

在运行时将SQL Server CE文件添加到app_data文件夹中

我想首先说,这听起来像是一种稍微有趣的做事方式。此外,SQL CE对于生产来说并不是很好。

无论如何,我也有一些关于租户创建的问题。检查cache.dat,它保存了所有租户的列表,可能需要刷新它。我还必须刷新租户才能工作:

// refresh tenant because otherwise it stays in setup mode
var tenant = _tenantService.GetTenants().FirstOrDefault(ss => ss.Name == name);
if (tenant == null) return HttpNotFound();
tenant.State = TenantState.Disabled;
_tenantService.UpdateTenant(tenant);
var tenant2 = _tenantService.GetTenants().FirstOrDefault(ss => ss.Name == name);
if (tenant2 == null) return HttpNotFound();
tenant2.State = TenantState.Running;
_tenantService.UpdateTenant(tenant2);

尽管看起来很迟钝,但它解决了我的问题。

我仍然建议使用Orchard的API来构建租户。祝你好运

相关文章: