今天将一个系统Publish到website之后,运行系统后出错,提示说未将实例赋值给引用的对象。这个Exception是一个第三方的组件抛出来的,只有这一点点可用的信息。开始怀疑是组件的配置问题,不过鉴于在VS.NET2008中以调试方式系统都能正常的运行,因此将怀疑的目光投向了IIS与SqlServer的连接。
既然都是MS的东东,那咱就去看Event log吧。果然,Event Viewer中有几行错误的日志,User是ASPNET,正是和系统运行相关。
其中一条日志“Failure Audit”,错误信息是:"Login failed for user FOREVERBETA\ASPNET'. [CLIENT: <local machine>]"
哦也,原来如此。系统中正式使用的信任连接,而SQLExpress中没有设置ASPNET帐户的权限。
创建ASPNET登录用户并授予db的权限
再次连接,正常!