AzureでホストされているASHXファイルを構成する次のコードがあります。
public void ProcessRequest(HttpContext context)
{
int number;
try
{
number = int.Parse(context.Request.QueryString["number"]);
}
catch
{
number = -1;
}
var bitmap = new Bitmap(173, 173);
DrawImage(bitmap, number);
context.Response.ContentType = "image/png";
bitmap.Save(context.Response.OutputStream, ImageFormat.Png);
context.Response.Flush();
}
private void DrawImage(Bitmap bitmap, int number)
{
using (var graphics = Graphics.FromImage(bitmap))
{
graphics.FillRectangle(GetBrush(number), 0, 0, 173, 173);
Font font = new Font("Segoe UI", 40f, FontStyle.Bold);
StringFormat textFormat = new StringFormat
{
Alignment = StringAlignment.Far,
LineAlignment = StringAlignment.Center
};
Rectangle rectangle = new Rectangle(0, 0, 160, 173);
graphics.DrawString("76", font, Brushes.Black, rectangle, textFormat);
font = new Font("Arial", 16, FontStyle.Bold);
textFormat = new StringFormat
{
Alignment = StringAlignment.Near,
LineAlignment = StringAlignment.Near
};
rectangle = new Rectangle(10, 10, 163, 163);
graphics.DrawString("YOUR NUMBER", font, Brushes.Black, rectangle, textFormat);
}
}
ローカルで実行すると、このコードは完全に動作し、正しい結果を生成します。Azureにデプロイすると、次のようになります。
GDI+で一般的なエラーが発生しました。
説明:現在のWebリクエストの実行中に未処理の例外が発生しました。エラーとエラーがコードのどこで発生したかについての詳細は、スタックトレースを確認してください。
例外の詳細:System.Runtime.InteropServices.ExternalException:GDI+で一般的なエラーが発生しました。
誰かアイデアはありますか?前もって感謝します