sql server网页项目发布

网络整理 - 08-18

   问题描述:

  工作中总会时不时地遇到一些这样的情况,在开发或者QA上程序运行总是好好的,但到了生产环境,程序却跑不出来了。印象比较深刻的是之前遇到的两个以sql server为数据库的网页项目,一是访问网页错误,二是网页上的下拉列表没有结果。

  环境:SQL SERVER 2008, IIS, SSRS 2008, Visual Studio 2008, ASP.NET

  解决方法:

  第一种情况:

  将网页发布到生产环境之后,系统会检测你个人的系统登陆账号是否有权限访问该网页,该权限控制是配置在数据库里面几张表里面的。某同学在为自己和小伙伴们配置好了权限之后,发现在登陆生产环境还是会出错。而实际情况是,该同学忽略了IIS里面的application pool identity账户。在asp.net debug模式下,内置的网页服务器使用自己的系统帐号去访问数据库。可网页一旦发布到某IIS服务器上之后,还需要将数据库的访问权限赋予IIS里面配置的application pool identity账户。(当然还要将该IIS的Web Site的访问权限赋予自己的系统登陆账号)

  第二种情况:

  没有把下拉列表所使用的procedure execute权限赋予访问组。 语法:GRANT EXECUTE ON procedure_nm TO PUBLIC