3

我已经使用 asp.net 创建了一个网站,当我使用 Visual Studio 开发服务器运行它时,一切都运行良好,但是当我尝试通过 IIS 服务器运行它时,网站的主页会加载,但它无法与数据库服务器建立连接

<add connectionString="Data Source=ASHUTOSH-PC\SQLEXPRESS;Initial Catalog=CloudStorage;Integrated Security=True" name="connectionStr"/>
</connectionStrings>

这在 Visual Studio 开发服务器上运行良好,但不适用于 IIS....请帮助

4

2 回答 2

2

由于您Integrated Security=True使用的是应用程序池身份来连接到数据库。运行 Cassini 时,您使用自己的凭据。您应该使用有权登录和查询 SQL Server 的用户设置应用程序池标识。

于 2013-03-10T14:58:29.360 回答
1

来自MSDN

当您使用 ASP.NET开发服务器运行页面时,该页面将在您当前用户帐户的上下文中运行。例如,如果您以管理员级别的用户身份运行,则在 ASP.NET 开发服务器中运行的页面将具有管理员级别的权限。相反,在 IIS中,默认情况下 ASP.NET在通常具有有限权限的特殊用户(ASPNET 或 NETWORK SERVICES)的上下文中运行。ASPNET 或 NETWORK SERVICES 帐户是服务器计算机的本地帐户(不是域帐户),这限制了对其他计算机上资源的访问。

数据库访问
使用 ASP.NET 开发服务器时,您通常可以依靠 Windows 集成身份验证来访问 SQL Server。但是,当同一页面在 IIS 中以 ASPNET 或 NETWORK SERVICES 帐户运行时,该页面将在本地用户的上下文中运行,并且您通常必须将页面配置为使用包含有关用户和密码的信息的连接字符串. 有关详细信息,请参阅从 Web 应用程序访问 SQL ServerASP.NET 安全体系结构

于 2013-03-10T14:59:20.580 回答