首页 > 代码库 > IIS无法连接LocalDb,怎么办?

IIS无法连接LocalDb,怎么办?

最近安装了vs 2013,电脑配置不太好,所以没有安装数据库,直接使用vs2013自带的localdb工具,直接运行访问本地mdf数据库文件。但是部署到IIS就出问题了。问题就像下面的图片一样。

 

 

最后还是找了一下原因,网上找了一些资料,他们的解决办法是这样的。

 

找到当前IIS网站使用的应用程序池,我当前使用的是ASP.NET v4.0,于是设置该应用池进程模型标志为localsystem,数据库文件访问就正常了。

后面又找了一些原因,主要原因是不同的内置账户所对应的的权限和服务不同。具体如下:

 

 

LocalSystem   账户 

LocalSystem是预设的拥有本机所有权限的本地账户,这个账户跟通常的用户账户没有任何关联,也没有用户名和密码之类的凭证。这个服务账户可以打开注册表的HKEY_LOCAL_MACHINE\Security键,当LocalSystem访问网络资源时,它是作为计算机的域账户使用的。 

举例来说,以LocalSystem账户运行的服务主要有:WindowsUpdate   Client、   Clipbook、Com+、DHCP   Client、Messenger   Service、Task   Scheduler、Server   Service、Workstation   Service,还有Windows   Installer。 

Network   Service   账户 

Network   Service账户是预设的拥有本机部分权限的本地账户,它能够以计算机的名义访问网络资源。但是他没有Local   System   那么多的权限,以这个账户运行的服务会根据实际环境把访问凭据提交给远程的计算机。Network   Service账户通常可以访问Network   Service、Everyone组,还有认证用户有权限访问的资源。

举例来说,以Network   Service账户运行的服务主要有:Distributed   Transaction   Coordinator、DNS   Client、Performance   Logs   and   Alerts,还有RPC   Locator。

Local   Service   账户 

Local   Service账户是预设的拥有最小权限的本地账户,并在网络凭证中具有匿名的身份。Local   Service账户通常可以访问Local   Service、Everyone组还有认证用户有权限访问的资源。

举例来说,以Local   Service账户运行的服务主要有:Alerter、Remote   Registry、Smart   Card、SSDP,还有WebClient。

简单说明:

Local   system   :本地系统用户,   个人电脑通常选择这个用户 

Network   service   :网络服务用户,   通常需要远程连接的都使用这个 

Local   Service   :本地服务