使用 Asp.Net 在服务器上的 Web 应用程序文件夹之外获取 db 路径

Posted

技术标签:

【中文标题】使用 Asp.Net 在服务器上的 Web 应用程序文件夹之外获取 db 路径【英文标题】:Get db path outside of web app folder on server using Asp.Net 【发布时间】:2011-09-30 16:57:57 【问题描述】:

我向服务器发布了一个 Web 应用程序,我想访问一个数据库文件 (.mdb),该文件也存储在服务器上我以外的不同位置。如何在我的 Asp.Net 应用程序的 web.config 文件中执行此操作?

<add name="MyOleDbConnection" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source= **?** \inventory.mdb"/>

【问题讨论】:

你能定义“我之外”吗?您的意思是它在 Web 应用程序的根目录之外? 【参考方案1】:

我不相信您可以通过代码使用 Server.MapPath() 之类的东西来做到这一点 - 这是有充分理由的。这将允许开发人员编写接管云服务器上主机操作系统的应用程序。限制您确定不受 IIS 控制的文件/文件夹的路径,以防止目录遍历攻击。

您需要询问系统管理员或有权访问该计算机上路径的人员。获得完整路径后,您可以在 .config 中设置完整路径

c:\path\inventory.mdb

而不是

\inventory.mdb

您还需要确保系统管理员授予您访问 .mdb 的权限。

【讨论】:

我的项目当前位于虚拟目录中,.mdb 文件位于我的虚拟目录之外的目录中。 谢谢,它成功了。我打电话给系统管理员,他们给了我虚拟文件夹之外的完整路径。

以上是关于使用 Asp.Net 在服务器上的 Web 应用程序文件夹之外获取 db 路径的主要内容,如果未能解决你的问题,请参考以下文章

在 Asp.Net Core Web 应用程序中使用 EasyAuth 对 Azure 应用服务上的 AAD 进行身份验证时,无法填充 ClaimsPrincipal

一台服务器上的多个 Web 应用程序(Silverlight 和 ASP.NET MVC)

如何使用 HTTP 连接通过托管在 IIS 上的 ASP.NET 成员身份保护 ASP.NET Web API [重复]

ASP.NET 部分回发上的 Chrome 自动填充(更新面板)

使用 ASP .Net 管理本地机器上的进程

在 Chrome 中托管在 Azure 中的 ASP.NET Core Web 应用程序上的异常 HTTP 响应