Параметр не является допустимой ошибкой при создании нового растрового изображения - PullRequest
1 голос
/ 03 октября 2011

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

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

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

Недопустимый параметр

Я искал форумы, чтобы попытаться найти решение, но я немного не уверен, где еще искать, потому что файл определенно существует на сервере разработки, и код отлично работает на моей локальной машине.Сервер, который я использую, является VPS, и я довольно новичок в работе с серверами, поэтому я не знаю, есть ли что-то, что я не настроил там, что мешает ему работать?

Хотяпытаясь найти решение, я также попробовал следующий код, но я получаю сообщение об ошибке 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"))))

Мне интересно, может ли кто-нибудь помочь мне найти решение этой проблемы или, альтернативно, есть лидругой метод достижения той же цели?

Вся помощь очень ценится.Благодаря.

Ответы [ 3 ]

2 голосов
/ 07 октября 2011

Это может быть проблема с правами доступа к файлу, необходимо убедиться, что учетная запись IUSR для вашего сайта имеет права на чтение файла образа. Для этого -

R-щелкните файл, Свойства, выберите вкладку «Безопасность» - у вас будет список пользователей, имеющих доступ к файлу. Быстрая проверка - добавить «Все» с привилегиями чтения. Чтобы сохранить его привязанным только к экземпляру ASP.Net, необходимо запустить диспетчер IIS, щелкнуть правой кнопкой мыши пул приложений, и Identity - это пользователь, под которым работает ваше приложение.

1 голос
/ 07 октября 2011

Если вы используете IIS, возможно, тип файла не задан в доступных типах MIME для сайта.

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

В IIS7 есть модуль для каждого сайта, который называется «MIME Types». Проверьте, есть ли расширение файла в списке, и если нет, добавьте его с соответствующим типом MIME (список типов пантомимы в ссылке выше)

0 голосов
/ 03 октября 2011

Я думаю, что вы должны использовать ~ оператор root для решения проблемы пути.

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

ИЛИ указанный файл не является допустимым файлом изображения.

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