0
静的ファイルを提供するためにMicrosoft.Owin.StaticFilesミドルウェアで自己ホスト型Web APIサーバーを使用しています。構成:コントローラ内のOwinミドルウェア構成
public void Configuration(IAppBuilder appBuilder)
{
// Configure Web API for self-host.
var config = new HttpConfiguration();
//...
appBuilder.UseWebApi(config);
var physicalFileSystem = new PhysicalFileSystem(@".\Public");
Directory.CreateDirectory(physicalFileSystem.Root);
var options = new FileServerOptions
{
FileSystem = physicalFileSystem,
RequestPath = PathString.FromUriComponent("/download")
};
appBuilder.UseFileServer(options);
}
WebAPIコントローラのFileSystem設定(またはファイルが提供されている場所からのパス)を取得する方法はありますか。
設定をどこかに保存してOWinの設定で使用するのはなぜですか?とにかくこれらの "魔法の"文字列をあなたのコードに持つべきではありません。 – DavidG
できません。それがOWinのPOINTです。 Static Fileミドルウェアは、WebAPIコントローラとは独立しています。代わりに、WebAPIに静的ファイルをホストさせることができます。ワイルドカードパスを持つStaticFileControllerのルートを設定してから、コントローラ内のパスを解析して、返すFileStreamオブジェクトを作成します。 – Aron