我有一个与WCF/Entity Framework 类似的问题,当部署到 IIS 时,外部 SQL Server DB 不起作用,除了这是在 Windows 8 上并且数据库服务器不是远程的。它在同一台机器上,并且没有域。脚本的第一部分有效,但没有用户 IIS APPPOOL\ASP.NET 4.0 帐户。Windows 8 上有像 .NET 4.5 这样的应用程序池,它似乎很喜欢,但这仍然不起作用。我知道这是某种权限问题。任何人都可以帮助编写脚本或答案,这样可以吗?我必须能够使用 EF 创建 WCF 服务。谢谢。
我尝试了第一个主题的修改脚本:
USE [master]
GO
CREATE LOGIN [sgentile-hp\sgentile] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
GO
USE [AdventureWorks2012]
GO
CREATE USER [sgentile-hp\sgentile] FOR LOGIN [sgentile-hp\sgentile]
GO
USE [AdventureWorks2012]
GO
EXEC sp_addrolemember N'db_datareader', N'sgentile-hp\sgentile'
GO
USE [AdventureWorks2012]
GO
EXEC sp_addrolemember N'db_datawriter', N'sgentile-hp\sgentile'
GO
这产生了:
Msg 15025, Level 16, State 2, Line 1
The server principal 'sgentile-hp\sgentile' already exists.
Msg 15063, Level 16, State 1, Line 1
The login already has an account under a different user name.
Msg 15410, Level 11, State 1, Procedure sp_addrolemember, Line 35
User or role 'sgentile-hp\sgentile' does not exist in this database.
Msg 15410, Level 11, State 1, Procedure sp_addrolemember, Line 35
User or role 'sgentile-hp\sgentile' does not exist in this database.
我还尝试创建一个经过 SQL 身份验证的用户并在连接字符串中使用其名称和密码,但仍然无法正常工作。必须有一种与用户一起运行应用程序池的方法。