无法从网络上的 PC 访问我的 WPF 应用程序中的数据库(.mdf 文件)

Posted

技术标签:

【中文标题】无法从网络上的 PC 访问我的 WPF 应用程序中的数据库(.mdf 文件)【英文标题】:Can't access the DataBase (.mdf file) in my WPF application from PC's on network 【发布时间】:2013-02-06 10:43:33 【问题描述】:

我创建了一个连接到一些 sql 数据库表的 wpf 应用程序。 当我在我的电脑上运行此应用程序时,一切正常,但是当我尝试从本地网络上的其他电脑上运行它时,我收到一个错误:“文件(“文件名”)位于不受支持的网络路径上用于数据库文件”。

创建一个 WPF 应用程序的最佳方法是什么?该应用程序必须从本地网络上的共享公共数据库的某些电脑上运行?

【问题讨论】:

【参考方案1】:

您是否考虑过数据库服务器、SQL Server、mysql 或类似的东西?如果你真的想坚持使用基于文件的数据库(出于安全原因,我不建议这样做),那么你可以使用 SQLite 之类的东西。

【讨论】:

我也在我的电脑上创建了本地数据库服务器 SQLEXPRESS,我的应用程序在我的电脑上正常访问了数据库,但是从网络上的其他电脑我又遇到了错误。如何让我的应用程序以这种方式从其他电脑访问数据库? 您需要在 SQLEXPRESS 中启用其中一种网络协议,请查看此 SO 答案:***.com/questions/2486610/…【参考方案2】:

如果您启用了“命名管道”,您将只能从另一台 PC 连接到您的服务器(在本例中为您的 PC)实例。如果需要,您还可以启用 TCP\IP 等,但这可能是您收到错误的原因。

命名管道在 MSSQL 的 Compact 或 Free 版本中不可用。

具有适当版本的 MSSQL 的数据库服务器或 PC 是您的最佳选择。

【讨论】:

首先感谢您的回答。我使用 Microsoft SQL Server 2008 R2。我在电脑的网络上同时启用了 TCP\IP 和“命名管道”。现在我收到“会话超时”错误。有什么想法吗? 错误:“超时。在操作完成之前超时时间已过或服务器没有响应”。我该怎么办?【参考方案3】:

yepppp 解决了。 感谢您的回答。 我做了一些事情最终解决了我的问题: 1. 从连接字符串中删除“uid=Tomer, pwd=, and pooling=False”。 2. 在防火墙中启用端口 1433(sql 端口)。 3. 如前所述,启用 TCP/IP 和“命名管道”。

非常感谢您的帮助。

【讨论】:

以上是关于无法从网络上的 PC 访问我的 WPF 应用程序中的数据库(.mdf 文件)的主要内容,如果未能解决你的问题,请参考以下文章

进程无法访问图像文件,因为它正被另一个进程使用

从网络上的另一台电脑访问 ASP.NET 开发服务器

如何从我自己网络中的公共 IP 访问我的网页

无法访问用户控件上的公共属性wpf c#

无法访问本地网络上的 wamp 服务器

从同一网络中的其他设备访问 Vue.js 应用程序(也使用代理)