【工作记录0017】vs调试附加到进程w3wp.exe,链接数据库出错

16 篇文章 0 订阅
9 篇文章 0 订阅

最近做网站时,前端想要调试api,而我作为后台又要继续开发其他api,于是我就想把网站发布到iis上,我使用的是iis 7+vs2015+mvc+.net4.5 。

怎么发布网站,这里就不做介绍了,请自行百度。

当我发布网站后,访问api总是获取不到数据。比如一个简单的登录api,后台总是返回“用户名或密码错误”(其实是正确的),后来就想说使用vs调试附加到进程w3wp.exe,这样可以模拟调试放在iis的网站的请求,也可以直接在代码中打断点调试。

后来附加进程到w3wp.exe调试时,发现报了以下错误:基础提供程序在 Open 上失败。其中的InnerException.Message为Login failed for user 'IIS APPPOOL\ASP.NET v4.0'. 花了我半天时间,像网上说的什么修改iis中应用程序池的Identity属性等等 都没能解决问题。后来在不断的重试过程中,我发现了一个细节,就是在使用vs附加进程到w3wp.exe时的安全提示:

请注意截图中的用户:IIS APPPOOL\ASP.NET v4.0   

分析:w3wp.exe是在IIS(因特网信息服务器)与应用程序池相关联的一个进程,如果你有多个应用程序池,就会有对应的多个w3wp.exe的进程实例运行。该用户IIS APPPOOL\ASP.NET v4.0  是附加到进程调试时,vs给分配的默认用户,因为我的项目是使用的.net4.5,而.net4.5其实只是.net4.0的一个补充版本,即在iis中4.5和4.0的应用程序池都指的是4.0,所以这里的默认用户是 IIS APPPOOL\ASP.NET v4.0  。那么问题来了,数据库根本没有这个登录用户啊!!那怎么可能登陆到数据库呢??!!

于是我赶紧打开sql server management studio,以系统管理员身份登录到数据库,依次打开security->logins查看,发现根本没有 IIS APPPOOL\ASP.NET v4.0 这个用户。

于是我新建了这个用户,然后再使用vs附加进程到w3wp.exe调试,成功了!!!不再报错了!!!撒花!!!

新建IIS APPPOOL\ASP.NET v4.0 用户截图如下:

这里只说明general和status选项的设置,其他设置根据实际情况自己决定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值