Bitrac 刚开始开发的时候用的 Access 数据库,但是 Access 数据数据膨胀太厉害,效率也不是很好,后来 Bitrac 使用 SQLite 数据,但是 SQLite 数据库的 .NET 引擎有个致命的弱点就是无法在 Medium Trust 模式下使用,而国内外很多 .NET 空间都为了安全使用 Medium Trust 模式,这就为 Bitrac 以后的推广带来了麻烦,本来我关注过 VistaDB 这个数据库引擎,但是以前 VistaDB 是收费的,大概今年 5 月份 VistaDB 推出了免费使用的 Express 版本。
VistaDB 是完全用 .NET 开发的一个数据引擎,效率虽然没有 SQLite 那么快,但是却支持 Medium Trust 模式,通用性比 SQLite 强太多了。正在考虑是否把 Bitrac 的数据库引擎换到 VistaDB。等有时间具体测试一下 VistaDB 的效率以后再决定是否转换。
VistaDB 的主页:http://www.vistadb.net/
2008-07-24 15:48 by zx.asd
你能否考虑下把Sqlite的dl加入进GAC里?如果能加的话,就可以通过Medium Trust了。
加 GAC 必须要在服务器端操作的。现在数据有三个选择,Access,SQL Server Compact Edition 和 VistaDB。可惜这三个的分页都需要 ADO.NET 完成。
2008-07-24 17:27 by zx.asd
如果你有信心去推广它,这样做是值得的,也是必要的。所以还是先试验成功最好了。
安装到 GAC 很简单,把 System.SQLite.Data.dll 复制到 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 里面然后再拖进 C:\WINDOWS\assembly 就可以了。
想问一下,调整为Medium Trust了,程序如何调试? 原有的程序 Full模式正常,调整为Medium Trust 了,挺多错误的,还提示 某某 类型的权限已失败,怎么解决?
2008-07-24 20:44 by 时代
想问一下,调整为Medium Trust了,程序如何调试? 原有的程序 Full模式正常,调整为Medium Trust 了,挺多错误的,还提示 某某 类型的权限已失败,怎么解决?
目前 Bitrac 在 Medium Trust 下面主要有两个问题:一个就是 SQLite 的问题,还有就是后台首页面获取服务器 CPU 信息的问题。我本地的版本已经解决了第二个问题,下次更新。第一个问题比较麻烦,需要动服务器或者换数据库系统。
对了,在网上搜 Medium trust应用程序执行不注册访问, 不记录访问及不能使用反射.
那也就是说CreateInstance用不了?
2008-07-24 21:29 by zx.asd
谢谢,SQLite的倒是放成了,不过又有新问题了,呵呵。
呵呵。Medium Trust 问题还是比较多的。Medium Trust 模式下 Trackback 也无法发送了,禁止了 WebRequest 去访问其他网站的页面。正在想解决办法。
2008-07-24 20:54 by 时代
对了,在网上搜 Medium trust应用程序执行不注册访问, 不记录访问及不能使用反射.那也就是说CreateInstance用不了?
应该是的。
2008-07-24 22:46 by Loveyuki
呵呵。Medium Trust 问题还是比较多的。Medium Trust 模式下 Trackback 也无法发送了,禁止了 WebRequest 去访问其他网站的页面。正在想解决办法。
嘎嘎。弄了半天解决方法真简单啊。 originUrl=".*" 就是了。
2008-07-24 22:52 by Loveyuki
嘎嘎。弄了半天解决方法真简单啊。 originUrl=".*" 就是了。
想问下,如果是国外的空间,他们的配置会是 originUrl=".*" 吗? 提起 Medium Trust 模式,如果自己没服务器,好像受的牵制太多了噢。
2008-07-28 18:14 by 时代
想问下,如果是国外的空间,他们的配置会是 originUrl=".*" 吗? 提起 Medium Trust 模式,如果自己没服务器,好像受的牵制太多了噢。
originUrl 是自己在 web.Config 配置的。默认的 Medium Trust 不会禁止这个属性的修改。目前 Bitrac 对于 Medium Trust 的限制就是 SQLite,你可以跟网站管理员联系说明 SQLite 的优势,让他把库安装到 GAC 里面就安逸了。
OleDbPermission 不可用. 意思是你不可以用ADO.NET管理OLE DB data provider 去访问数据库. 然而, 你可以使用受管理的SQL Server provider去访问SQL Server 数据库.
Medium Trust 怎么使用Access数据库?
请求“System.Data.OleDb.OleDbPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”类型的权限已失败。
能不能介绍些 Medium Trust方面的中文资料? 百度搜到的不多
博主怎么不看评论啊,帮忙回答一下啊,谢谢啦。
2008-08-12 09:51 by 时代
博主怎么不看评论啊,帮忙回答一下啊,谢谢啦。
Medium Trust 在微软的 MSDN 有详细的解释啊,Medium Trust 默认是无法使用 OLEDB 连接的,一般的虚拟主机如果是 Medium Trust 都会自定义这个权限把打开,或者有免费的 SQL Server Express ,要不然谁会用啊。呵呵
下次什么时候更新~ 最近都没~~~