私は現在専用サーバーのサイトを運営していますが、将来はMicrosoft Azureクラウドプラットフォームを使用してスケールアップしたいのですが、私のコードのcertin部分が紺色で動作するか確信できません。Azure asp.netで画像を生成
サイトは、アイテムのギャラリーと各アイテムの画像で構成されています。 イメージはsqlserverデータベースに格納されます。
イメージをディスクにキャッシュし、リクエストをイメージにリダイレクトするHTTPハンドラを作成しました(投稿の最後に表示されています)。
イメージは、ASP.NETアプリケーション内の "imagecache"という仮想ディレクトリに保存されます。 (〜/ imagecache /)。
WebアプリケーションはAzureプラットフォームの多くの仮想マシンインスタンスで実行されるため、イメージはインスタンス間で共有する必要がありますか?
私の質問は本当に..私がすでに持っているものを達成するための最良の方法は、互換性のあるウィット・アジールですか?
おかげ
画像GENコード..
public class getimage : IHttpHandler {
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public void ProcessRequest (HttpContext context) {
try
{
string uniqueid = "";
if(context.Request.QueryString["id"]) uniqueid = context.Request.QueryString["id"].ToString();
string dir = "~/imagecache/";
string image_target_path = dir + "image-file-" + uniqueid + ".png";
byte[] data = null;
context.Response.ContentType = "image/png";
if (!System.IO.File.Exists(context.Server.MapPath(image_target_path)))
{
if (context.Request.QueryString["id"] != null)
{
// get image data from the database
data = ImageHelper.getDatabaseImageDataByID(Convert.ToInt32(uniqueid));
using (System.Drawing.Image img = System.Drawing.Image.FromStream(new System.IO.MemoryStream(data)))
{
// save image to disk in the virtual dir
img.Save(context.Server.MapPath(image_target_path));
}
}
else
{
// set a sample image if no id is set
image_target_path = "~/images/noimage.png";
}
}
// redirect request to image file
context.Response.Redirect(image_target_path, false);
}
catch (Exception ex)
{
log.Error(ex.Message, ex);
}
}
public bool IsReusable {
get {
return false;
}
}
}