app服务器本地数据库文件,在App_Data文件夹中使用sql数据库发布mvc网站

只要您的应用程序池帐户具有SQL Express权限,您就可以了。

您需要考虑以下几点:

您使用的是用户实例吗?和/或

是您在IIS 7上作为应用程序池标识运行的应用程序池吗?

用户实例

User Instance=true;AttachDBFilename=|DataDirectory|\InstanceDB.mdf

关于在asp.net中使用名为"Using SQL Server Express with ASP.NET"的SQL数据库有一篇很棒的MSDN文章,重复整个过程太长了。虽然它总体上讨论了使用它,但这些原则也适用于部署,并涵盖用户实例。

如果您正在使用用户实例,那么您还需要检查是否已安装SQL Server以允许它们。您可以通过运行sp_configure来查看设置来执行此操作:

exec sp_configure 'user instances enabled'

如果它返回“1”,那么您启用了用户实例,如果没有,则exec sp_configure 'user instances enabled', '1'将启用它们(并使用'0'禁用它们。)

用户实例并不总是最佳选择,因此在执行此操作之前,请检查您是否不想使用普通实例。

IIS 7应用程序池标识

IIS 7开始引入application pool identites。有时您需要授予他们访问sql server的权限:

确保您的应用程序池已启动(这很关键)(浏览网站上的主页)

打开SQL Server Management Studio(SSMS)

转到安全 - >登录服务器级别

右键单击,单击“创建新登录”

在登录字段中,输入IIS APPPOOL\MyAppPoolName并创建用户(设置您需要的任何其他设置)

我不在这里使用搜索功能,但只要应用程序池正在运行,名称就会验证,因此您可以根据需要进行验证。

转到您的数据库并将登录名添加为具有相应权限的数据库主体

db_owner对于生产系统略显激进,但在创建新表等时最简单,然后您可以将其拨到数据阅读器,编写器等)

或者,您可以运行:

CREATE LOGIN [IIS APPPOOL\MyAppPoolName] FROM WINDOWS;

USE MyDatabase

GO

CREATE USER MyAppPoolUser FOR LOGIN [IIS APPPOOL\MyAppPoolName];

EXEC sp_addrolemember N'role_name', N'MyAppPoolUser' -- role name could be db_owner

应用程序池标识现在是最佳实践,应尽可能使用(有些情况不可行,例如多服务器设置)。

其他错误 - 应用程序池标识和用户实例

如果您看到错误“由于读取注册表项失败而无法生成SQL Server的用户实例。连接将被关闭”那么您也遇到IIS应用程序池问题身份和用户实例。解决这个问题:

转到IIS管理器

转到应用程序池的高级设置

在流程模型下,单击“加载用户配置文件”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值