【问题标题】:Can't connect from IIS to localDB无法从 IIS 连接到 localDB
【发布时间】:2015-06-27 13:04:02
【问题描述】:

我正在尝试在我和我的室友(所以是本地人)之间开发一个 WebService。

我创建了一个保存在我的一个文件夹中的数据库 (.mdf) 和一些访问它并检索信息的 aspx 页面。 现在我试图在 IIS 下部署项目,当我必须访问本地数据库时遇到问题。

提供者:SQL 网络接口,错误:50 服务器未找到或未找到 可访问。

Web Visual Studio 中的一切工作正常!因此,如果我尝试连接刚刚从 Google Chrome 上的 VS 运行的数据库,一切都很好。仅当我尝试在 IIS 8.0 下运行时才会出现此错误

(my string connection = Server=(LocalDB)\\v11.0;     

AttachDbFilename=C:\\Users\\Asus\\Desktop\\RobaMia\\SQLSERVER\\WindowsFormsApplication3\\WindowsFormsApplication3\\Database2.mdf;
Integrated Security=True;Connect Timeout=30;User Instance=False)

难道是"User Instance = False" 成功了?


我还说我所有的应用程序池都是用户设置的 http://i.imgur.com/jrOZxTO.jpg

【问题讨论】:

    标签: c# sql asp.net visual-studio


    【解决方案1】:

    可能您的 IIS 应用程序池无权打开您的数据库文件 C:\Users\Asus\Desktop\RobaMia\SQLSERVER\WindowsFormsApplication3\WindowsFormsApplication3\Database2.mdf。我建议将应用程序池标识更改为您的本地 Windows 用户。

    查看此链接:Using LocalDB with Full IIS, Part 1: User Profile - SQL Server Express WebLog - Site Home - MSDN Blogs

    【讨论】:

    • 路径当前为C:\Users\<your account>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances 如果您的应用程序池使用“ApplicationPoolIdentity”,那么您可以将db 文件或文件夹的权限授予IIS AppPool\<app pool name>。您真的不想为 Web 应用授予与更高权限桌面用户相同的权限。
    【解决方案2】:

    我也有同样的问题。

    1. 从 Visual Studio 断开数据连接 服务器资源管理器到参考数据库。(它允许复制文件)
    2. 像你一样发布你的项目,我个人是做文件系统的。
    3. 手动将 App_Data 从本地项目复制到发布的路径。
    4. 在 IIS 中双击应用程序池。
    5. 单击资源管理器右上角的“设置应用程序池默认值”。
    6. 在流​​程模型下,转到标识并选择“本地系统”
    7. 完成祝你好运。

    它适用于您在 iis 中测试的所有 web api。仅当托管在 IIS 中而不是 Express 中时,它才适用于我的 xamrine.android 应用程序测试。

    【讨论】:

    • 授予本地系统作为临时故障排除步骤很好,但它的权限太多而无法保留。
    【解决方案3】:

    我的 web.config 中有这个。删除它为我解决了这个问题

    <identity impersonate="true" />

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-10
      • 2021-12-13
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      相关资源
      最近更新 更多