Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 从App_代码文件夹中的类访问App_中的文件数据_Asp.net - Fatal编程技术网

Asp.net 从App_代码文件夹中的类访问App_中的文件数据

Asp.net 从App_代码文件夹中的类访问App_中的文件数据,asp.net,Asp.net,在ASP.Net中,用户无法通过web访问app_数据文件夹。我想在此文件夹中存储一个文件,并使用App_Code文件夹中的类读取此文件 请记住,此处的当前工作目录将是一个目录,如“c:\”、“c:\windows\system32\”等,而不是应用程序目录。所以像“./App\u Data/somefile”这样的东西不起作用 在如何以编程方式访问App_数据文件夹中的文件时,我忽略了一些简单的东西 我该怎么做?您说您无权访问上下文对象,但不清楚为什么会这样 如果代码是响应请求运行的,则可以通

在ASP.Net中,用户无法通过web访问app_数据文件夹。我想在此文件夹中存储一个文件,并使用App_Code文件夹中的类读取此文件

请记住,此处的当前工作目录将是一个目录,如“c:\”、“c:\windows\system32\”等,而不是应用程序目录。所以像“./App\u Data/somefile”这样的东西不起作用

在如何以编程方式访问App_数据文件夹中的文件时,我忽略了一些简单的东西


我该怎么做?

您说您无权访问上下文对象,但不清楚为什么会这样

如果代码是响应请求运行的,则可以通过以下方式访问上下文:-

HttpContext.Current
如果失败,您可以使用以下方法访问应用程序的根物理路径:-

HttpRuntime.AppDomainAppPath

您可以访问App_数据文件夹,如下所示:

string appdatafolder = Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, "App_Data");

我意识到这使用了HttpContext对象,但是,如果您在自定义ASP.NET成员资格提供程序中编写此代码(我自己已经做了很多次),那么使用HttpContext对象应该没有问题。

谢谢,这让我有了一个正确的开始,我选择了HttpContext.Current.Server.MapPath(“~/App\u Data/myfilenamehere”)方法,因为它看起来更可读。@Brian-很高兴您已经启动并运行了。但是,请参阅此链接,关于MapPath与PhysicalApplicationPath的性能:如果只是偶尔访问,可能不会有问题,但很高兴了解性能差异。我的类位于一个数据层,没有对web和mvc库的引用。C这个数据类仍然使用App_数据吗?HttpRuntime和HttpContext都使这个持久性类知道web部署。Thanks@one.beat.consumer:是的,虽然我认为你确实回答了自己的问题。不是真的,我只是问得不好-更清楚地说,我的存储库类如何在不引用
System.Web
或任何其他Web库?是否有其他方法指向此文件夹?分离关注点。我希望我的数据持久性服务不了解前端的任何信息。例如,我希望能够将这些存储库库作为类库提取出来以供重用。@one.beat.consumer:那就最好o是发明一些接口,您的库可以通过这些接口获取文件夹路径。您仍然需要编写至少一个此接口的实现,该接口具有在网站中托管的特定知识,并且您仍然需要将此接口的实现提供给您的存储库代码。没有超级通用的内置功能NET来实现你想要的。