我使用带有mdf的localdb在我的笔记本电脑上创建了一个MVC4 Web应用程序。文件。然后我将项目导出到我的桌面,然后我将这些文件复制到运行IIS的Win2k12上的网络服务器上。
复制后,我在同一个Win2k12服务器上运行的MSSQL Express 2012服务器上创建了表,并在我的项目中修改了web.conf以定位服务器而不是mdf文件。
这里就是一切都停止了,当我尝试发送数据时,我得到以下错误(应该与sql server通信,浏览页面很好,只要它不尝试与sql服务器通信):
无法打开登录请求的数据库“mc.foo.net”。登录失败。 用户'IIS APPPOOL \ mc.foo.net'登录失败。
而且我猜测用户IIS APPOOL是从我的笔记本电脑继承的东西,我在Win2k12服务器上没有这个用户。我怎么能改变呢?什么?我有几个用户(来自SQL Server Manager中服务器的安全性):
除了我的域管理员。我该如何解决这个问题?
答案 0 :(得分:0)
您可以在IIS管理器中轻松更改应用程序池标识。 在目标应用程序池(在“根/应用程序池”下)中,选择高级设置。这是一个Category Process Model ,您可以在其中指定池的标识。
内置帐户允许您使用网络服务/本地系统/ ...而自定义允许您指定域或本地用户。这就是全部!
不建议在应用程序池上提供太多权限。这可能会损害您的应用程序的安全性,有时可能会很难管理。因此,我强烈建议您对数据库使用sql身份验证并加密连接字符串。
答案 1 :(得分:0)
您的问题似乎是用户没有数据库服务器的权限。
有很多方法可以解决这个问题。
如果您通过集成安全性连接到数据库...将其更改为本地SQL服务器或域用户名和密码。
授予您的appPool帐户dataReader或dataWriter访问权限(不建议用于制作)。