ユーザーが App_Data フォルダーにあるファイルを要求できるようにしたいと考えています。これはエラーです:
エラー概要
HTTP エラー 404.8 - 見つかりません
要求フィルタリング モジュールは、hiddenSegment セクションを含む URL 内のパスを拒否するように構成されています。
ユーザーが App_Data フォルダーにあるファイルを要求できるようにしたいと考えています。これはエラーです:
エラー概要
HTTP エラー 404.8 - 見つかりません
要求フィルタリング モジュールは、hiddenSegment セクションを含む URL 内のパスを拒否するように構成されています。
App_Data
Webアプリケーションのデータストレージとして使用されるため、フォルダに直接アクセスすることはできません。保存されたデータのセキュリティ上の理由から、connectionstringを使用してのみフォルダからデータベースにアクセスできます。
web.config
<connectionStrings>
<add name="AddressBookConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\myDB.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
これを確認してくださいhttp://www.codeproject.com/Articles/31557/A-Beginner-s-Guide-to-ASP-NET-Application-Folders#h
UPDATE
プログラム的に、Webアプリケーション内の任意のファイルにアクセスし、応答に書き込むことができます。
public class FileAccessHandler:IHttpHandler
{
public FileAccessHandler()
{
//
// TODO: Add constructor logic here
//
}
public bool IsReusable
{
get { return false; }
}
public void ProcessRequest(HttpContext context)
{
String FileName = Path.GetFileName(context.Request.PhysicalPath);
String AssetName = HttpContext.Current.Request.MapPath(Path.Combine(HttpContext.Current.Request.ApplicationPath, "App_Data/" + FileName));
if (File.Exists(AssetName))
{
context.Response.ContentType = "image/jpeg";
context.Response.BinaryWrite(File.ReadAllBytes(AssetName));
context.Response.End();
}
}
}