среда, 25 июля 2012 г.

Проблема рендеринга на шаред хостинге (добавлено)


ASP-страничка прекрасно рендерит картинку на локальной машине (Windows7, VS Development Server или IIS-Express)


и не хочет это делать, когда работает у хостера
http://flag.somee.com/RenderInfo.aspx
(проверил на parking.ru - не поддерживается .NET Framework 4.0)


Для серверного рендеринга используется WPF. Визуализируется Grid с двумя потомками: Rectangle и Button. Оба они отрисовываются в png-файл без проблем. Когда же вместо Button процедура получает Viewport3D, она его в упор не видит.


P.S. Процедура рендеринга выглядит примерно так:

private RenderTargetBitmap CreateFlagImg(FrameworkElement myCanvas, ...)
{

  FlagCanvas.UpdateLayout();
  FlagCanvas.Measure(new Size(FlagCanvas.Width, FlagCanvas.Height));
  FlagCanvas.Arrange(new Rect(new Size(FlagCanvas.Width, FlagCanvas.Height)));


  RenderTargetBitmap rtb = new RenderTargetBitmap(..., PixelFormats.Pbgra32);
  DrawingVisual dv = new DrawingVisual();
  using (DrawingContext ctx = dv.RenderOpen())
  {
    VisualBrush vb1 = new VisualBrush(myCanvas);
    ctx.DrawRectangle(vb1, ...);
  }
  rtb.Render(dv);


  return rtb;
}