アプリケーションの Web フォルダーに直接リンクして書き込みを行うことは、決して良い考えではありません。むしろ、ashx ハンドラーを作成してイメージをストリームバックするルートに進みたいと思います。次のようなファイル (getmyimage.ashx.cs など) を作成できます。
using System;
using System.Web;
public class getmyimage : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
Response.ContentType = "image/png";
Response.WriteFile("x:\myimages\test.png");
Response.End();
}
public bool IsReusable
{
get
{
return false;
}
}
}
getmyimage.ashx には、次のような内容が含まれます。
<% @ webhandler language="C#" class="getmyimage" %>
このコードでは、"x:\myimages\test.png" が、ブラウザーにストリーミングして戻すイメージになります。パラメータを getmyimage.ashx url に追加して、ロードするイメージを指定できます。コードを変更して、その場で画像を生成したり、それらの線に沿って何かを生成したりすることもできます。
次に、画像 URL で「getmyimage.ashx」を指定できます。したがって、imageurl は次のようになります。
Image1.ImageUrl = "getmyimage.ashx"
Antonio がコメントで示したように、必要なキャッシュ オプションのタイプを確認して設定する必要があります。デフォルトの動作では、常に画像を送り返し、キャッシュしません。画像をキャッシュしたい場合は、次の投稿をご覧ください。
キャッシュ ASHX イメージ レスポンス
質問の画像に直接マップするには、これを使用できます。
Image1.ImageUrl = "~/images/test.png"