ASP.NET 怎么在 IIS 中连接在 VS 中自带的 SQL server 数据库? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
CBBing
V2EX    .NET

ASP.NET 怎么在 IIS 中连接在 VS 中自带的 SQL server 数据库?

  •  1
     
  •   CBBing 2016-05-14 23:16:19 +08:00 6007 次点击
    这是一个创建于 3510 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT 我之前一直用的是 VS2015 自带的 SQL server 本地数库,验证方式是 windows 身份验证 现在准备把部署本地 IIS 上, IIS 貌似不支持 windows 身份验证连接数据库,但我在 VS 上修改的数据库连接就会报错 求助怎么解决这个问题?

    第 1 条附言    2016-05-15 09:20:01 +08:00
    我之前的连接字符串如下
    <add name="AccountsContext" cOnnectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\accounts.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />

    现在需要改成 SQL server 方式连接
    <add name="AccountsContext" cOnnectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=Example;AttachDbFilename=|DataDirectory|\accounts.mdf;UserID=CBB;Password=CBB123xyz;Integrated Security=True" providerName="System.Data.SqlClient"/>
    但是在数据库一栏没有
    手动修改连接还会报错
    第 2 条附言    2016-05-15 11:03:39 +08:00
    我安装了 SQL server 2014 连接到本地 localDb 发现用 windows 验证登录可以显示数据库文件,
    用 SQL server 身份可以登录,但是不能打开数据库文件
    第 3 条附言    2016-05-15 16:01:01 +08:00
    我现在用这个连接字符串
    <add name="AccountsContext" cOnnectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\accounts.mdf;User Id=sa;Password=CBB123xyz" providerName="System.Data.SqlClient"/>
    在 VS 上已经可以连接了, 但在 IIS 上还是报错
    : Login failed for user 'sa'.
    39 条回复    2016-05-15 21:35:49 +08:00
    bdbai
        1
    bdbai  
       2016-05-15 09:18:10 +08:00 via Android   1
    检查一下 Debug 和 Release 两个版本的 Web.config 中连接字符串有没有出入?
    CBBing
        2
    CBBing  
    OP
       2016-05-15 09:20:19 +08:00
    @bdbai 我试试看
    CBBing
        3
    CBBing  
    OP
       2016-05-15 09:21:46 +08:00
    @bdbai debug 和 release 里没有连接字符串
    bdbai
        4
    bdbai  
       2016-05-15 09:28:35 +08:00 via Android   1
    @CBBing 之前的连接字符串可以用吗?
    CBBing
        5
    CBBing  
    OP
       2016-05-15 09:36:10 +08:00
    @bdbi 可用,我之前开发的时候就是用这个连接字符串的
    bdbai
        6
    bdbai  
       2016-05-15 09:48:51 +08:00 via Android   1
    CBBing
        7
    CBBing  
    OP
       2016-05-15 10:08:30 +08:00
    @bdbai 还是不行
    CBBing
        8
    CBBing  
    OP
       2016-05-15 10:16:10 +08:00
    jeansfish
        9
    jeansfish  
       2016-05-15 10:27:15 +08:00   1
    Integrated Security=True 改成 false 或者删掉,如果你要用用户名密码的话
    bdbai
        10
    bdbai  
       2016-05-15 10:38:41 +08:00 via Android   1
    @CBBing 按照楼上的试一下。直接把 |DataDirectory| 用 mdf 目录代掉
    andrewpsy
        11
    andrewpsy  
       2016-05-15 10:47:20 +08:00   1
    要不用 userid+password 要不用 integrated security, 两个一起用是怎么个意思。
    CBBing
        12
     
    OP
       2016-05-15 10:48:19 +08:00
    @jeansfish
    @bdbai <add name="AccountsContext" cOnnectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=E:\CNSOFT\MVCDEMO\MVCDEMO\APP_DATA\ACCOUNTS.MDF;UserID=sa;Password=CBB123xyz" providerName="System.Data.SqlClient"/>
    还是不行
    CBBing
        13
    CBBing  
    OP
       2016-05-15 10:48:35 +08:00
    @andrewpsy 现在改了
    andrewpsy
        14
    andrewpsy  
       2016-05-15 10:51:57 +08:00   1
    @CBBing 你是什么版本的 MSQL ?我从来没见过 AttachDbFilename 。
    你把 DataSouce 拆开变成: DataSource=(localdb);initial category=mssqllocaldb 然后去掉 AttachDbFilename 试试。
    CBBing
        15
    CBBing  
    OP
       2016-05-15 10:53:43 +08:00
    @andrewpsy 上面写的是 SQL server 12.0.2000
    andrewpsy
        16
    andrewpsy  
       2016-05-15 10:55:46 +08:00   1
    你是了这个没有?
    <add name="AccountsContext" cOnnectionString="Data Source=(LocalDb);Initial Category=MSSQLLocalDB;UserID=sa;Password=CBB123xyz" providerName="System.Data.SqlClient"/>
    bdbai
        17
    bdbai  
       2016-05-15 10:57:32 +08:00 via Android   1
    @andrewpsy 他那个是 VS 自带的 Local DB ,数据库就一文件。
    CBBing
        18
    CBBing  
    OP
       2016-05-15 11:00:45 +08:00
    @andrewpsy “/”应用程序中的服务器错误。

    不支持关键字: “ initial category ”。
    andrewpsy
        19
    andrewpsy  
       2016-05-15 11:08:18 +08:00   1
    @CBBing @bdbai 不熟悉 VS 自带的文件型数据库就不瞎支招了。
    CBBing
        20
    CBBing  
    OP
       2016-05-15 11:10:43 +08:00
    @andrewpsy 还是谢谢你
    beginor
        21
    beginor  
       2016-05-15 11:13:18 +08:00 via Android   1
    IIS 的话需要修改应用程序池账户,默认的程序池账户权限太低,,话说 localdb 的性能没得说,就是有限制数据文件大小和网络访问
    CBBing
        22
    CBBing  
    OP
       2016-05-15 11:17:09 +08:00
    @beginor 请问怎么修改
    beginor
        23
    beginor  
       2016-05-15 11:21:32 +08:00 via Android   1
    CBBing
        24
    CBBing  
    OP
       2016-05-15 11:34:10 +08:00
    @beginor 这个之前设置过了
    CBBing
        25
    CBBing  
    OP
       2016-05-15 11:34:34 +08:00
    @beginor 不过重新试了一遍,还是不行
    beginor
        26
    beginor  
       2016-05-15 11:45:07 +08:00 via Android   1
    @CBBing 问 bing 吧,关键字 localdb iis ,求人如若求 bing
    CBBing
        27
    CBBing  
    OP
       2016-05-15 11:47:39 +08:00
    @beginor 我一直在用 google ,难道是关键词不对?
    qiyuey
        28
    qiyuey  
       2016-05-15 11:51:24 +08:00 via Android   1
    用专门的数据库服务器,不要用 localDb
    CBBing
        29
    CBBing  
    OP
       2016-05-15 11:52:42 +08:00
    @qiyuey 那我 localDb 里的数据库文件怎么处理,里面的数据还需要用的
    qiyuey
        30
    qiyuey  
       2016-05-15 11:55:17 +08:00 via Android   1
    @CBBing 数据量不大就直接导出 localDb 到 SQL 文件,然后再导入 Sql Server 里
    jeansfish
        32
    jeansfish  
       2016-05-15 11:56:50 +08:00   1
    这个呢?
    beginor
        33
    beginor  
       2016-05-15 12:07:03 +08:00 via Android   1
    @CBBing 也可能是姿势不对
    jeansfish
        34
    jeansfish  
       2016-05-15 12:09:01 +08:00   1
    Google 搜 IIS localdb 第一个就是这个
    andrewpsy
        35
    andrewpsy  
       2016-05-15 12:15:02 +08:00   1
    @CBBing 我不甘心开了虚拟机用 VS2015 自己试了一下,以下:
    0. 打开 VS2015 的 Sql Server Object Explorer
    1. 展开 (localdb)\MSSQLLocalDB
    2. 右键点击你的数据库,菜单里找到“ new query ”点击,输入以下三句后点击“ execute ”
    CREATE LOGIN [CBBing] WITH PASSWORD = 'CBB123xyz';
    CREATE USER [CBBing] FOR LOGIN [CBBing];
    exec sp_addrolemember 'db_owner', 'CBBing'
    4. 把 connectionstring 改成:<add name="AccountsContext" cOnnectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=E:\CNSOFT\MVCDEMO\MVCDEMO\APP_DATA\ACCOUNTS.MDF;UserID=CBBing;Password=CBB123xyz" providerName="System.Data.SqlClient"/>
    CBBing
        36
    CBBing  
    OP
       2016-05-15 14:33:49 +08:00
    @andrewpsy 谢谢,但还是不行,我准备再试几次,如果还是一样的话,就用 SQL server 做了
    jsq2627
        37
    jsq2627  
       2016-05-15 19:50:31 +08:00   1
    最好不要在完整 IIS 下用 LocalDB ,问题比较多
    https://blogs.msdn.microsoft.com/sqlexpress/2011/12/08/using-localdb-with-full-iis-part-1-user-profile/
    https://blogs.msdn.microsoft.com/sqlexpress/2011/12/08/using-localdb-with-full-iis-part-2-instance-ownership/

    要不就 IIS Express + LocalDB ,要不 IIS + SQL Server Express 。 LocalDB 本来就是特意为 IIS Express 设计的。
    CBBing
        38
    CBBing  
    OP
       2016-05-15 21:05:27 +08:00
    @jsq2627 嗯, 好的,多谢指教
    CBBing
        39
    CBBing  
    OP
       2016-05-15 21:35:49 +08:00   1
    @bdbai
    @jeansfish
    @andrewpsy
    @beginor
    @qiyuey
    @jsq2627 多谢你们指点迷津,现在我已经把数据从 localDb 转移到了 SQL server Express ,问题解决了,再次谢谢你们
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2954 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 12:23 PVG 20:23 LAX 04:23 JFK 07:23
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86