aspx登录页面,输入密码和用户名(都确认正确了),然后出现:无法打开登录所请求的数据库 "Hotel"。登录失败。
用户 '49CD3857E41F469\ASPNET' 登录失败。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 无法打开登录所请求的数据库 "Hotel"。登录失败。
用户 '49CD3857E41F469\ASPNET' 登录失败。源错误: 
行 1068:            }
行 1069:            tbl_manager_inf.tbl_manger_infDataTable dataTable = new tbl_manager_inf.tbl_manger_infDataTable();
行 1070:            this.Adapter.Fill(dataTable);
行 1071:            return dataTable;
行 1072:        }
在.NET中自带的浏览器中测试成功,在IIS中测试就出现异常了。
这我是我的web.config配置文件代码:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings/>
    <connectionStrings>
        <add name="ConnectionString" connectionString="Data Source=localhost; Initial Catalog=Hotel;Persist Security Info=Ture" />
        <add name="HotelConnectionString" connectionString="Data Source=49CD3857E41F469;Initial Catalog=Hotel;Integrated Security=True"
            providerName="System.Data.SqlClient" />
    </connectionStrings>
<system.web>
<authentication mode="Forms"/>
</system.web>
</configuration>
PS:在坛上搜到有零零星星差不多相同的帖子,可惜应该是不够全面,改来改去都不行,所以希望高手教教我,.NET底子不够厚,希望写详细点,谢谢。

解决方案 »

  1.   

    你的connectionstring使用Integrated Security=True,意思是使用运行程序的用户来访问数据库。
    ASP.net applicstion的host是IIS, IIS 在XP下以ASPNET用户运行,而在2003上是以network service用户运行。看你的问题应该是在xp下运行了,而你的aspnet用户没有权限访问数据库。
    你有两个方法解决.
    1. 在Sql server management studio中为aspnet用户增加访问数据库的权限
    2. 修改connectionString,指定足够权限的用户访问数据库。   <add name="HotelConnectionString" connectionString="Data Source=49CD3857E41F469;Initial Catalog=Hotel;uid=sa;pwd=sa