Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.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
C# 在服务器上部署时获取文件的目录_C#_Asp.net - Fatal编程技术网

C# 在服务器上部署时获取文件的目录

C# 在服务器上部署时获取文件的目录,c#,asp.net,C#,Asp.net,在我的解决方案中,我有多个项目,在项目A中,我希望从项目B中的文件中创建System.IO.File.ReadAllText(字符串目录),但是我不希望硬编码路径,因为一旦部署到托管服务器上,路径将发生更改。我已将副本始终设置在文件上,但无法使用路径.Combine(GetCurrentDirectory),因为目录将不同,它将来自解决方案文件中的不同项目。我怎么能绕过这个 我也试过了 System.String.Format(@"{0}bin\{1}", System.AppDomain.Cu

在我的解决方案中,我有多个项目,在项目A中,我希望从项目B中的文件中创建System.IO.File.ReadAllText(字符串目录),但是我不希望硬编码路径,因为一旦部署到托管服务器上,路径将发生更改。我已将副本始终设置在文件上,但无法使用路径.Combine(GetCurrentDirectory),因为目录将不同,它将来自解决方案文件中的不同项目。我怎么能绕过这个

我也试过了

System.String.Format(@"{0}bin\{1}", System.AppDomain.CurrentDomain.BaseDirectory, filename);

但是问题是项目b中的文件不是BaseDirectory。

CurrentDomain.BaseDirectory仅适用于桌面应用程序。没有理由访问web应用程序的
bin
文件夹中的任何内容。从安全角度来看,这也是一个非常糟糕的想法-您必须使用提升的特权来允许web应用程序访问
bin
中的文件。将所需的任何资源/资产放在文件夹中,并使用Server.MapPath将相对URL映射到绝对文件位置。Web应用程序项目模板有一个App_数据文件夹。为什么不使用它?CurrentDomain.BaseDirectory仅适用于桌面应用程序。没有理由访问web应用程序的
bin
文件夹中的任何内容。从安全角度来看,这也是一个非常糟糕的想法-您必须使用提升的特权来允许web应用程序访问
bin
中的文件。将所需的任何资源/资产放在文件夹中,并使用Server.MapPath将相对URL映射到绝对文件位置。Web应用程序项目模板有一个App_数据文件夹。你为什么不用它?