0

データを JSON 形式で提供する Web サービスを作成しました。このデータを読み取ってハイチャートを作成します。このWebサービスをコーディングすると、JSON形式にシリアル化した文字列の値を取得し、システムのフォルダーに保存しますが、Webサービスをリモートマシンにデプロイするときに問題が発生します。以下のコードで説明されているように、ローカル パスを指定したので、ファイル、

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

次の 2 つの方法があります。

  1. c:\jsonアプリケーション ID にフォルダーに書き込むための書き込みアクセス許可を付与しますが、これはお勧めできません。

  2. 相対パスを使用するようにコードを変更します。

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

Server.MapPath仮想ディレクトリを、OS の同等の絶対ディレクトリにマップします。たとえば、Web サイトが でホストされているc:\websites\json-project\場合、 usingServer.MapPath("/foo")は path に変換されc:\websites\json-project\fooます。

デフォルトでは、どの ASP.NET アプリケーションもそのすべてのフォルダーに完全にアクセスできます。

于 2013-11-13T06:21:12.437 に答える