我有以下代码组成托管在 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+ 中发生一般错误。
有人有想法么?提前致谢