2010-10-31 13 views
0

J'ai un problème très gênant avec l'enregistrement dynamique d'une image à partir d'un texte de base de données. Ce code fonctionne bien sur ma boîte de dev, mais pas sur le serveur de production.Création d'image sur le serveur de production

Voici un échantillon de ce que je suis en train de faire:

 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"); 
    } 

chemin du serveur, il dispose d'un service réseau écrire Permissio

Répondre

0

Vérifiez quel compte votre code fonctionne sous (quelque chose comme System.Environment. UserName) et assurez-vous que c'est le nom que vous attendez.

Par défaut, l'emprunt d'identité est activé et l'utilisateur n'a peut-être pas accès en écriture au dossier spécifié. Le code peut également s'exécuter sous un compte d'utilisateur anonyme (c'est-à-dire si vous avez des utilisateurs d'authentification par formulaire/anonymes).

Dans tous les cas, vous devez vérifier si l'utilisateur dispose des autorisations nécessaires pour créer l'image sur le disque du serveur et terminer l'écriture sous le compte disposant des autorisations nécessaires. C'est à dire. vous pouvez explicitement emprunter l'identité d'un compte particulier et exécuter du code qui écrit sur le disque sous ce compte.

Vérifiez également si le pool d'applications de production s'exécute sous le compte attendu. C'est à dire. il peut (et ne devrait probablement pas) s'exécuter sous un compte de service réseau.

+0

Merci Alexei! Je vais vérifier cela. Le site fonctionne sur un plan d'hébergement partagé par Softsys. J'ai donc peu de contrôle sur les comptes qui obtiennent des autorisations. Peut-être que l'usurpation d'identité est la voie à suivre pour écrire l'image. Merci pour l'aide! – adminJaxon

Questions connexes