SQL Server 速成版用户化和 ASP.Net Web 应用程序项目的问题

文章翻译 文章翻译
文章编号: 2002980 - 查看本文应用于的产品
展开全部 | 关闭全部

症状

Web 应用程序运行 IIS 7.5,依赖于 SQL Server 快速实例化的用户将无法运行 Windows Server 2008 R2 和 Windows 7 客户端上使用默认 IIS 7.5 安全配置。 开发人员将会遇到开发 Web 应用程序使用 Windows 7 客户端和 Windows Server 2008 R2 上的 Visual Studio 2005 + SQL Server 快速 2005年,Visual Studio 2008 + SQL Server 快速 2008,或 Visual Studio 2010 + SQL Server 快速 2008年的问题。

开发人员会遇到类似的问题开发 Web 应用程序项目 (WAP) 或网站承载下 IIS6/IIS7/IIS7.5 依赖于 SQL Server 速成版用户实例在 WAP 项目结构或网站的文件夹结构中存在用户的文档文件夹的尝试。 所有版本,而不管基础鎿嶄綔绯荤粺版本的 Visual Studio 的存在此问题。 试图创建数据库或读/写到数据库使用 SQL Server 速成版用户实例模式的 Web 应用程序可能会遇到任何下列错误:

附加一个自动命名的数据库文件 c:\Users\[YourUserAccountName]\Documents\Visual Studio 20XX\Projects\[YourSolutionName]\[YourProjectnName]\App_Data\aspnetdb.mdf 的尝试失败。 具有相同名称的一个数据库存在,无法打开指定的文件,或它位于 UNC 共享。


--或--


无法检索用户的本地应用程序数据路径生成 SQL Server 一个用户实例失败。 请确保用户在计算机上具有本地用户配置文件。 将关闭连接。


 

注意 : 如果满足以下任何一种的 Web 应用程序依赖 SQL Server 速成用户实例模式:

  • 应用程序依赖于默认"LocalSQLServer"连接字符串中 machine.config 定义
  • 应用程序使用连接字符串,其中包含以下属性:

    "AttachDBFilename=|DataDirectory|xxxxxx.mdf;User 实例 = true"

 

 

原因

Windows Server 2008 R2 和 Windows 7

IIS 7.5 默认安全配置设置"应用程序池标识"作为运行的应用程序池。 运行一个应用程序池使用该特殊标识第一次引入是作为 Vista SP2 和 Windows Server 2008 SP2 中的可选设置。 Windows 7 客户端和 Windows Server 2008 R2 该特殊标识是默认。
 
使用 Visual Studio 2005,Visual Studio 2008,或 Visual Studio 2010 并且生成的 Web 应用程序依赖于用户使用任一 SQL Server 快速 2005年的实例化或 SQL Server 快速 2008年执行无效与新应用程序池标识。 杩欎簺浜 у 搧已开发并测试对用旧的 NETWORK 服务帐户运行的应用程序池。

 

Web 应用程序项目和网站位于在 IIS 中托管的用户的文档文件夹

在用户的"Documents\Visual Studio 20XX\Projects"文件夹下一个文件夹结构中存在的 Web 应用程序项目 (WAP)。 在用户的"Documents\Visual Studio 20XX\Websites"文件夹下一个文件夹结构中存在的网站项目。 SQL Server 速成版用户实例需要到父文件夹的网站或 WAP 项目的目录结构的文件访问权限。 因为默认情况下 IIS 服务帐户 (NETWORK 服务) 没有这些权限,Visual Studio 项目的文件夹结构、 WAP 项目和网站位于用户的文档文件夹中,在 IIS 中承载的将不能打开 SQL Server 快速的实例化的用户数据库进行读访问。
 
最初创建用户的文档文件夹中,但随后更改为使用 IIS Web 服务器通过 Web 选项卡的项目的属性的 WAPs 会遇到此文件的权限问题。 在该网站的目录结构位于一个用户的文档文件夹的 IIS 中承载的网站也会遇到文件权限问题。 此行为发生 WAP 项目和托管的任何用户的文档文件夹中的项目结构所在的 NETWORK 服务 (IIS6 IIS7,IIS 7.5) 作为运行的 IIS 版本的网站。

 

解决方案

分辨率 Windows 7 和 Windows Server 2008 R2

为运行 IIS 的 7.5 下而不考虑它们的项目类型的所有 Web 应用程序执行以下步骤:

  1. 运行该 Internet Information Services (IIS) 管理器工具。 可以从管理开始菜单中或在 Windows 开始--> 搜索文本框中键入"inetmgr"然后选择 inetmgr 工具,可以访问此工具。
  2. 在左侧的 IIS 管理器工具窗格中展开计算机节点。
  3. 单击"应用程序池"节点,以便在管理工具的主窗口中显示的应用程序池。
  4. 如果您正在排查的 ASP.NET 2.0/3.0/3.5 应用程序选择"DefaultAppPool"应用程序池。 对于 ASP.NET v4 选择在"ASP.NET v4.0"应用程序池。
  5. 右击所选的应用程序池并选择高级设置
  6. 在在高级设置对话框中找到名为"流程模型"的类别。 第一行的类别将"标识"行。
  7. 在"标识"行上单击然后值单元格的右侧显示的小按钮上。 按钮显示文本"..."
  8. 调用应用程序池标识一个对话框将弹出菜单。 在该对话框中,有两个的单选按钮。 确保选中了标题"内置帐户",第一个单选按钮。
  9. 在下拉列表框中在单选按钮的下方选择"网络服务"标识。
  10. 单击"确定"以关闭传出应用程序池标识对话框。
  11. 单击"确定"将关闭高级设置对话框。
  12. 此时应用程序池标识对将已保存到 IIS 7.5 的配置存储。

 

Web 应用程序项目和网站的解决方案

为 Web 应用程序项目 (WAP) 和承载在 NETWORK 服务为正在运行 IIS 的任何版本的用户的文档文件夹中的网站,执行以下步骤:

  1. 首先确认 IIS 被配置为作为 NETWORK 服务运行。 这是 IIS6 和 IIS7 上的默认值。 但是如果在运行 Windows 7 或窗口 Server 2008 R2 上您将首先需要要按照上面"解析为 Windows 7 和 Windows Server 2008 R2"以使 IIS 应用程序池运行为 NETWORK 服务。
  2. 在命令提示符下键入 net stop iisadmin /y。 这将导致关闭任何正在运行的 ASP.NET WAP 应用程序。
  3. 退出所有正在运行的 Visual Studio 实例。
  4. 必须位于您的用户文档文件夹中顶层的 Visual Studio 文件夹的读取权限授予 NETWORK 服务。 Visual Studio 文件夹将具有取决于版本的不同名称:"Visual Studio 2005"、"Visual Studio 2008",或"Visual Studio 2010"。
  5. 两个读取和写入项目的顶级项目文件夹的权限必须授予 NETWORK 服务。 例如,如果 WAP 项目称为"MyCustomWebProject",然后在文件夹"Documents\Visual Studio 20xx\Projects\MyCustomWebProject"需要具有读取和写入访问启用的 NETWORK 服务。 或者,如果 webiste 项目被称为"MyCustomWebProject",然后文件夹"Documents\Visual Studio 20xx\Websites\MyCustomWebProject"需要具有读取 NETWORK 服务启用写访问权限。
  6. 必须授予 NETWORK 服务,同时读取和写入 App_Data 文件夹位于您的 Web 项目的目录结构内的权限。

 

更多信息

Microsoft 建议本文所述,解决方法只用于取消阻止受影响的开发方案。 在部署到生产任何版本的 IIS 上的应用程序时不应使用 SQL Server 速成版用户实例。
 
在 IIS 7.5 生产 Web 服务器上的应用程序池的配置应使用新的应用程序池标识或自定义创建的用户帐户。 在 IIS 7.5 生产 Web 服务器上的应用程序池不再应作为 NETWORK 服务运行。
 
使用 WAP 项目的描述的解决方法,位于用户的文档文件夹中的网站应将它用作仅临时的替代方法。 从安全角度来看就不需要拥有对 Visual Studio 项目文件夹中,子文件夹的所有的读访问权限的 NETWORK 服务。 将 IIS 托管 WAP 项目建议和到不同的文件位置的 IIS 通常可访问的网站服务帐户 (例如 c:\inetpub\wwwroot)。

 

注意:本篇“快速发布”文章是从 Microsoft 支持组织直接创建的。 文中包含的信息按原样提供,用于响应紧急问题。 由于发布仓促,材料可能包含印刷错误,并且可能随时修订,恕不另行通知。 有关其他注意事项,请参阅使用条款

属性

文章编号: 2002980 - 最后修改: 2010年3月10日 - 修订: 3.0
这篇文章中的信息适用于:
  • Microsoft Internet Information Services 7.0
  • Microsoft Visual Studio 2005 Professional
  • Microsoft Internet Information Services 6.0
  • Microsoft Visual Studio 2008 Professional Edition
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2005 Express Edition
关键字:?
kbrapidpub kbnomt KB2002980
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com