0

我创建了一个以 JSON 格式提供数据的 Web 服务,我将读取这些数据以创建一个高图表。当我编码这个网络服务时,我得到了我已经序列化为 JSON 格式的字符串中的值,并将其存储在我的文件夹中,但问题是当我将我的网络服务部署在远程机器上时,我将面临存储问题文件,因为我提供了本地路径,如下面的代码中所述,

System.IO.File.WriteAllText(@"C:\Json\Json.json", jSearializer.Serialize(modified_listofstrings));

任何人都可以建议我应该做什么,以便我可以以这样一种方式存储这个文件,以便在远程机器上部署我的 web 服务后可以很容易地访问它?

这可能吗,或者我将不得不创建一个简单的 asp.net 应用程序并使用该 Web 服务并将该文件存储在该新创建的应用程序的文件夹中?

我对这个概念很陌生,因此我不知道存储在虚拟文件夹或类似的东西中,我得到了这样做的建议,如果有人也向我解释这个概念,我将非常感激......

4

2 回答 2

1

您可以通过提供类似的相对路径来找到应用程序的物理路径Server.MapPath("/Json/Json.json")

有关更多信息,请查看下面的 SO 问题

Server.MapPath(".")、Server.MapPath("~")、Server.MapPath(@"\")、Server.MapPath("/")。有什么区别?

于 2013-11-13T06:28:12.107 回答
1

你有两种方法:

  1. 授予您的应用程序身份写入权限以写入c:\json文件夹,这不是一个好主意。

  2. 更改代码以使用相对路径:

    File.WriteAllText(System.Web.HttpContext.Current.Server.MapPath("/json"), "json-text");  
    

Server.MapPath将虚拟目录映射到它在操作系统中的等效绝对目录。例如,如果您的网站托管在 中c:\websites\json-project\,则 usingServer.MapPath("/foo")将被转换为c:\websites\json-project\foo路径。

默认情况下,任何 ASP.NET 应用程序都可以完全访问其所有文件夹。

于 2013-11-13T06:21:12.437 回答