最近用C#winform做了一个上传本地数据到服务器数据库(ACCESS)的对话框程序,做完后,基本可用。
但在测试过程中也发现了一些不了解的问题,特发贴请教。
软件是在XP环境下用VS2010完成的,服务器系统是SERVER2008R2,测试机有两台,一台是服务器,一台是同网络下的XP系统(当作服务器)。
测试了三种情况:
1、在XP系统服务器下,第一次设置登录用户名和密码,测试连接数据库成功,并能完成上传数据。
2、第二次XP系统不设密码,则连接数据库不成功,提示“Microsoft Jet数据库引擎打不开文件‘\\IP地址\共享文件夹\数据库’。它已经被别的用户以独占方式打开,或没有查看数据的权限”错误。
3、在Server2008系统服务器下,系统有密码。直接测试连接,就出现上述错误提示。但在通过在本机开始->运行中输入"\\IP地址"再输入用户名和密码,打开服务器上的共享文件夹后,再测试连接,则能成功,并能成功上传数据到服务器。
服务器系统密码不能随便取消,也就没有测试不设密码的情况了。
现就上述情况,请教做过类似功能的朋友,Server2008系统下如何能够直接连接成功?而不是要先通过运行连接成功后,再提交数据。
或者是我的Server2008系统服务器上的共享文件夹设置不对?数据库确定是用access,不能更换的。
------解决思路----------------------
不能直接读取写入远程Access 这玩意是单线程。
建议使用WebService来操作,这样就可以保证只有1个线程能访问Access。也可以更好的理解Soa。
------解决思路----------------------
换个数据库,用mysql等支持远程访问和连接池的数据库,access本质上就是一个文件,你远程共享文件夹操作文件或多线程访问,都会有各种问题
------解决思路----------------------
用B/S结构试一下,方便~~~
------解决思路----------------------
做成网站,使用access数据库也不是很靠谱吧
------解决思路----------------------
看起来是权限问题, 如果web server和access文件所在服务器在一个域中,比较简单。设置一个域帐号,有权限操作access文件,然后在IIS中设置web site的application pool由这个域帐号运行即可。
如果不是域,我们有个老的系统在win2003上是使用的 stored user names and passwords来解决的,把有权限访问access的账户保存在这里。
win2008应该在这里配置:
Control Panel\User Accounts\Credential Manager
------解决思路----------------------
建议使用sql server express,也是免费的。
------解决思路----------------------
Access 这种轻量的数据库,都是本地用的
------解决思路----------------------
如果就是不想换,而且机器固定,客户端也不会在新机器上安装,那么你登陆系统之后,有个"记住密码"的选项,点了之后,即使重启下次再访问也会自动登陆,不需要手动操作了
因为是共享文件夹方式,你要登陆共享文件夹肯定需要输入用户名密码才会有权限访问,默认是只要登陆过一次,客户机不重启的话,下次再登陆就不需要再次输入用户名密码,这个你可以用命令行\\IP来验证
------解决思路----------------------
看我6楼的回复了吗?用stored user names and passwords可以记住密码,在control panel里面。