日期:2014-05-19  浏览次数:20738 次

直接在局域网上运行的程序无法访问MDB数据库?
我有个mdb格式的数据库文件放在局域网上,可通过共享目录访问(比如\\PC1\DATA\db.mdb),另外我做了一个客户端程序(.exe),去读取这个存放局域网上的mdb文件。如果该客户端放在本地上执行,则可以成功连接并读取数据库上的内容;但如果我把客户端放在局域网上(我把它放和mdb文件同一个目录上),直接运行,则无法连接数据库,提示:“请求“System.Data.Odbc.OdbcPermission,   System.Data,   Version=2.0.0.0,   Culture=neutral,   PublicKeyToken=b77a5c561934e089”类型的权限已失败。”

连接数据库是使用绝对路径。而且odbc,oledb,ado都试过了,情况都和上面的一样。请问有没办法直接运行存放在局域网上的客户端也可以成功访问局域网上数据库文件呢?

谢谢

------解决方案--------------------
还是权限问题,吧everyone的权限全部开放,然后共享的权限也是一样
------解决方案--------------------
托管代码有安全设置的,默认情况下网络是不被信任的,你要在控制面板的.Net配置界面中信任你的程序所在路径。
不过Access是不适合用于局域网共享的,因为数据库操作要把文件全部读出之后写回,在数据库较大时效率很低,而且容易造成数据库损坏
------解决方案--------------------
把access数据库和客户端放在同一个目录下,用access的相对路径访问数据库
------解决方案--------------------
写个server端读写数据,用socket连接
------解决方案--------------------
"D:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\mscorcfg.msc "
然后选择:.NET Framework 2.0 Configuration\我的电脑\运行库安全策略\计算机\代码组\All_Code\Internet_Zone,然后选择 "编辑代码组属性 ",修改权限为FullTrust应该就可以了