2011-10-03 1 views
1

J'affiche des images sur ma page, puis j'essaie de trouver la hauteur actuelle des images afin de les positionner verticalement. Je fais cela en créant une nouvelle image et obtenir la hauteur du bitmap, comme suit:Le paramètre n'est pas une erreur valide lors de la création d'une nouvelle image bitmap

Dim sampleImg As New System.Drawing.Bitmap(Server.MapPath(String.Format("/Uploads/Products/Images/w100h100/{0}", e.Item.DataItem("Filename")))) 
Dim imgHeight As Integer = sampleImg.Height 

Quand je lance ce sur ma machine locale, tout fonctionne très bien. Cependant, je l'ai récemment téléchargé sur le site jusqu'à présent à mon serveur de développement et quand je lance le même code à partir de là, je reçois ce message d'erreur:

paramètre n'est pas

je cherche forums pour essayer de trouver une solution mais j'ai fini par un peu incertain où d'autre à regarder car le fichier existe définitivement sur le serveur de développement et le code fonctionne bien sur ma machine locale. Le serveur que j'utilise est un VPS et je suis assez débutant en ce qui concerne le travail avec les serveurs, donc je ne sais pas s'il y a quelque chose que je n'ai pas configuré là-bas, ce qui l'empêche de fonctionner?

tout en essayant de trouver une solution, j'ai aussi essayé le code suivant mais je reçois un message d'erreur System.IO.FileNotFoundException:

Dim sampleImg As System.Drawing.Image = System.Drawing.Image.FromFile(Server.MapPath(String.Format("/Uploads/Products/Images/w100h100/{0}", e.Item.DataItem("Filename")))) 

Je me demande si quelqu'un peut me aider à trouver une solution à cela, ou bien est il existe une méthode différente pour atteindre le même but?

Toute aide est très appréciée. Merci.

+2

Lors du débogage, le chemin d'accès complet correspond-il au chemin complet de l'image? Par exemple, avez-vous essayé de copier/coller ceci dans l'explorateur Windows, et cela renvoie-t-il l'image? – Curt

+0

Merci pour votre aide - oui j'ai essayé ceci donc je sais que l'image existe vraiment à cet endroit. – Leah

Répondre

2

Il peut s'agir d'un problème d'autorisations de fichiers, vous devez vous assurer que le compte IUSR pour votre site a accès en lecture au fichier image. Pour ce faire -

Cliquez avec le bouton droit sur le fichier, Propriétés, sélectionnez l'onglet "Sécurité" - vous aurez une liste des utilisateurs qui ont accès au fichier. Une vérification rapide consiste à ajouter "Tout le monde" avec des privilèges de lecture. Pour le garder verrouillé à votre instance ASP.Net seulement, vous devez démarrer le Gestionnaire des services Internet, clique sur votre pool d'applications et l'Identité est l'utilisateur sous lequel votre application s'exécute.

0

Je pense que vous devez utiliser l'opérateur racine ~ pour résoudre le problème de chemin.

Dim sampleImg As System.Drawing.Image = 
      System.Drawing.Image.FromFile(Server.MapPath(
      String.Format("~/Uploads/Products/Images/w100h100/{0}", 
      e.Item.DataItem("Filename")))) 

OU le fichier spécifié n'est pas un fichier image valide.

+0

Merci pour votre suggestion - malheureusement, cela n'a fait aucune différence et je reçois toujours le même message d'erreur. – Leah

+0

@Leah: Disposez-vous tous les objets image après l'exécution de cette partie du code? Écrivez un petit code et testez/exécutez ce qui se passe sur le serveur de développement. – adatapost

+0

Je ne disposais pas à l'origine de l'objet Image mais j'ai maintenant ajouté un peu de code pour disposer de l'objet après l'avoir utilisé. Cela n'a malheureusement toujours pas fait de différence sur le serveur de développement, et je reçois toujours le message d'erreur System.IO.FileNotFoundException. – Leah

1

Si vous exécutez IIS, il se peut que le type de fichier ne soit pas défini dans les types MIME disponibles pour le site.

http://technet.microsoft.com/en-us/library/bb742440.aspx

Avec IIS7 il existe un module pour chaque site appelé "Types MIME". Vérifiez si l'extension de fichier est dans la liste, et si non, ajoutez-la avec le type MIME approprié (liste des types mime dans le lien ci-dessus)

+0

Merci beaucoup pour la suggestion. Je viens de vérifier, mais tous les types de fichiers d'images qui sont pertinents sont déjà ajoutés dans la liste, donc cela ne semble pas être le cas. – Leah

Questions connexes