Создание образа на производственном сервере - PullRequest
0 голосов
/ 01 ноября 2010

У меня очень неприятная проблема с динамическим сохранением изображения из текста базы данных. Этот код прекрасно работает на моем компьютере разработчика, но не на рабочем сервере.

Вот пример того, что я пытаюсь сделать:

        private void SaveImage()
    {

       Bitmap objBmpImage = new Bitmap(300, 300);

        int intWidth = 0;
        int intHeight = 0;

        // Create the Font object for the image text drawing.
        Font objFont = new Font("Arial", 12, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel);

        // Create a graphics object to measure the text's width and height.
        Graphics objGraphics = Graphics.FromImage(objBmpImage);

        // This is where the bitmap size is determined.
        intWidth = 100;
        intHeight = 100;

        // Create the bmpImage again with the correct size for the text and font.
        //objBmpImage = new Bitmap(objBmpImage, new Size(intWidth, intHeight));

        // Add the colors to the new bitmap.
        objGraphics = Graphics.FromImage(objBmpImage);

        //bounding box
        RectangleF rectf = new RectangleF(0, 0, 295, 295);

        // Set Background color
        objGraphics.Clear(Color.White);
        objGraphics.SmoothingMode = SmoothingMode.AntiAlias;
        objGraphics.TextRenderingHint = TextRenderingHint.AntiAlias;
        objGraphics.DrawString("Test", objFont, Brushes.Black, rectf);
        objGraphics.Flush();

        objBmpImage.Save(@"***SERVER PATH HERE****");
        Response.Write("Image saved completed");
    }

там путь к серверу имеет разрешение на запись сетевой службы

1 Ответ

0 голосов
/ 01 ноября 2010

Проверьте, под какой учетной записью работает ваш код (что-то вроде System.Environment.UserName) и убедитесь, что это именно то имя, которое вы ожидаете.

По умолчанию олицетворение включено, и пользователь может не иметь права на запись в данную папку. Код также может выполняться под учетной записью анонимного пользователя (т. Е. Если у вас есть проверка подлинности с помощью форм / анонимные пользователи).

В любом случае вам необходимо проверить, есть ли у пользователя разрешения на создание образа на диске сервера и завершить запись под учетной записью, у которой есть разрешения для этого. То есть вы можете явно выдать себя за определенную учетную запись и запустить код, который записывает на диск под этой учетной записью.

Также проверьте, работает ли производственный пул приложений под ожидаемой учетной записью. То есть он может (и, вероятно, не должен) работать под учетной записью сетевой службы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...