5

ユーザーが App_Data フォルダーにあるファイルを要求できるようにしたいと考えています。これはエラーです:

エラー概要

HTTP エラー 404.8 - 見つかりません

要求フィルタリング モジュールは、hiddenSegment セクションを含む URL 内のパスを拒否するように構成されています。

4

2 に答える 2

6

App_DataWebアプリケーションのデータストレージとして使用されるため、フォルダに直接アクセスすることはできません。保存されたデータのセキュリティ上の理由から、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();
        }
    }
}


ダウンロード:App_Dataアクセスサンプル

于 2012-05-09T12:13:11.767 に答える