65.9K
CodeProject 正在变化。 阅读更多。
Home

解决“The underlying provider failed on Open”异常。

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.95/5 (19投票s)

2010年11月12日

CPOL

1分钟阅读

viewsIcon

273749

WCF 中出现“The underlying provider failed on Open”异常

正如大家所知,我正在 CodeProject 这里 发布企业架构设计文章。 在准备第三部分时,我开始为演示目的实现一个简单的分层应用程序。 完成服务器端实现后,我开始为演示目的实现一个简单的客户端。 完成客户端后,我尝试运行我的演示应用程序。 但不幸的是,我遇到了一个奇怪的异常,名为“The underlying provider failed on Open”。 我在 Google 上搜索了一个多小时,发现大多数人遇到同样的问题,即他们尝试通过 IIS 调用包含本地 SQL Server 数据库访问的服务。 但没有人提供正确的解决方案。 每个人都说 IIS 在与 SQL Server 身份验证过程联系时使用网络凭据。 因此,我们应该授予“NT AUTHORITY\NETWORK SERVICE”访问数据库的权限。 但这不是正确的解决方案,而且没有人说如何解决这个问题。 花费了一些时间后,我找到了解决方案,我的应用程序运行没有任何问题。 解决方案如下。 如大家所说,IIS 使用网络服务用户凭据尝试登录 SQL Server。 因此,只需在 IIS 中更改应用程序池设置。 步骤 1:打开 Internet Information Service Manager 步骤 2:在左侧导航树中单击应用程序池。 步骤 3:选择您的版本池。 在我的例子中,我使用的是 ASP .Net v4.0。 如果您没有此版本,请选择 DefaultAppPool。 步骤 4:右键单击步骤 3,然后选择高级设置。 步骤 5:在属性窗口中选择身份,然后单击按钮以更改该值。 步骤 6:在内置帐户组合框中选择本地系统,然后单击确定。 就这样。 现在运行您的应用程序。 一切正常。 享受吧!!!
© . All rights reserved.