1

複数の人といくつかのコンポーネント (Web アプリ、サービス アプリなど) の間でプロジェクトを行う。Web アプリの Content フォルダー内にいくつかの情報を保存して、href を使用して Web サーバーから直接アクセスできるようにしますが、Web アプリの外部にある他のコンポーネントもこのフォルダーにアクセスする必要があります。絶対パスを使用して複数の人の間でプロジェクトを行うことはできません。どのようなオプションがありますか?

編集:もう少しうまく説明しようとしています。

私が正確に持っているのは、Webプロジェクト、単なるdllである「データプロジェクト」、別のdllである「ロジック」プロジェクト、およびexe /サービスであるサービスプロジェクトです。Web プロジェクトとサービス プロジェクトの両方が、ロジックからメソッドを使用し、データ プロジェクトからロジックを使用します。データを (データベースに) 格納し、ファイル システムにも格納する責任を負うのは、最後の 1 つです。この「ファイル システム」パスは構成可能である必要があり、バイト ストリームを実行するのではなく、マルチメディア ファイルに直接アクセスできるように、Web プロジェクトのコンテンツ フォルダーに配置することを目指しています。

これで、web.config (Web アプリの構成ファイル) と app.config (サービス アプリの構成ファイル) で、web/content (両方の構成ファイルで同じ) への絶対パスを設定でき、データ dll は問題なく使えます。ここでの主な問題は、各人が明らかに異なるファイル パスを持つ別のコンピューターで作業するため、構成ファイルに絶対パスを配置できないことです。したがって、構成ファイルに C:/myfolder/stuff/blabla/project/web/content ではなく ~/project/Web/Content のようなものを書くことができれば、~ はプロジェクトへのパスを解決します。欲しいです!または、どこかにハードコードされた絶対パスを追加せずに、これらのアプリとフォルダーを共有する方法についてのより良いアイデアかもしれません。

4

2 に答える 2

2

使用したいものは次のとおりです。

Server.MapPath("/Content/filepath.ext");

これにより、Web サイト内の位置 (この場合は /Content ディレクトリから) に基づいて、ファイルの絶対パスが得られます。


Web サイトの外部にあるプログラムの場合、いくつかのオプションがあります。

実装が最も簡単なのは、ディレクトリを指す外部プログラムの単純な構成値です。私の推測では、それは理想的ではないとすでに判断されていると思いますが、それが最も速い方法かもしれません。

別の方法として、IIS 情報に簡単にアクセスできる Microsoft .NET アセンブリがあります (頭の中でその名前を思い出せません!)。このアセンブリを使用して、適切な Web サイトを見つけ、そのルート ディレクトリを取得できます。それを見つけて例を得ることができるかどうか、または他の誰かがこれを見て、その情報を含む回答を投稿するかどうかを確認します。

于 2013-05-27T06:46:29.700 に答える