Пожалуйста, помогите мне найти решение для «Общей ошибки произошла в GDI +» - PullRequest
1 голос
/ 14 февраля 2010

Я использую Windows Vista Business 64 бит. У меня есть веб-сервис, который был написан на .NET с использованием C #. У меня также есть клиентский скрипт на веб-странице, который связывается с веб-сервисом. Это страница aspx под названием «Default.aspx». Я установил IIS и переместил папку своего веб-сервиса, содержащую веб-сервис и все файлы, необходимые для его запуска, включая страницу default.aspx, в C: \ inetpub \ wwwroot. Я открыл диспетчер IIS и все правильно настроил. http://localhost/mysite/Default.aspx отлично работает. Страница загружается. Но теперь я получаю сообщение об ошибке при попытке загрузить изображение. (На странице Default.aspx есть загрузчик изображений). Цель состоит в том, чтобы загрузить и обрезать изображение перед его отправкой в ​​веб-службу:

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

В GDI + произошла общая ошибка. Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.Runtime.InteropServices.ExternalException: общая ошибка произошла в GDI +.

Ошибка источника:

При выполнении текущего веб-запроса было сгенерировано необработанное исключение. Информация о происхождении и местонахождении исключения может быть идентифицирована с помощью приведенной ниже трассировки стека исключений.

Трассировка стека:

[ExternalException (0x80004005): в GDI + произошла общая ошибка.] System.Drawing.Image.Save (имя файла строки, кодировщик ImageCodecInfo, кодировщик EncoderParameters encoderParams) +377630 System.Drawing.Image.Save (имя строки, формат ImageFormat) +69 FaceRecognition._Default.previewBtn_Click (Отправитель объекта, EventArgs e) в D: \ Сведения о проекте \ Проекты Layne \ Проект DotNet \ FaceRecognition \ FaceRecognition \ Default.aspx.cs: 114 System.Web.UI.WebControls.Button.OnClick ( EventArgs e) +111 System.Web.UI.WebControls.Button.RaisePostBackEvent (String eventArgument) +110 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent (Строка eventArebment +) .UI.Page.RaisePostBackEvent (IPostBackEventHandler sourceControl, String eventArgument) +13 System.Web.UI.Page.RaisePostBackEvent (NameValueCollection postData) +36 System.Web.UI.Page.ProcessEquestMain (Booleync) 157 *

Ответы [ 3 ]

0 голосов
/ 15 февраля 2010

Проверяет разрешение на запись в папку, в которую вы хотите сохранить файл. Права должны быть назначены пользователю NETWORK SERVICE.

0 голосов
/ 15 февраля 2010

Без какого-либо кода, это действительно трудно сказать.

Однако, учитывая, что это среда ASP.NET, и она «работает на вашем компьютере» (или, по крайней мере, это является следствием), мое первое впечатление будет состоять в том, чтобы увидеть, является ли пользователь процессом ASP.NET. имеет права доступа для записи в каталог, в который вы пытаетесь сохранить образ.

Если это действительно так, вы должны назначить разрешения на запись пользователю, под которым выполняется веб-приложение.

Однако не назначайте его одному из пользователей, связанных с процессом IIS или процессом ASP.NET. Это специальные учетные записи, и вам, как правило, не следует назначать им дополнительные разрешения.

Скорее, создайте обычного пользователя и запустите ваше веб-приложение под этим именем (достаточно легко сделать это через web.config), а затем предоставьте этому пользователю права на запись в каталог, который вы сохраняете изображение сделать.

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

0 голосов
/ 14 февраля 2010

Я уже имел эту ошибку раньше, и это было связано с отсутствием прав на целевую папку. Имеет ли ASPNET право на запись в указанную вами папку?

...