Я получаю эту ошибку случайно, иногда она показывает, а иногда нет!
Ошибка:
Теперь это исчезло: S! но он появится в ближайшие часы!
Проще говоря, в нем говорится, что параметризованному запросу нужен параметр «@PorfilePic», который не был предоставлен, хотя он и предоставлен, и веб-сайт работает локально, а также работает на сервере. Я не изменяю код, провайдер не меняет никаких настроек.
Мне сказали, что я превышаю свой предел памяти для AppPool, который составляет 250 МБ, но я думаю, что он должен появиться, когда я превышаю и после отдыха пула он должен работать нормально. но это было так неделю назад. теперь он просто работает случайным образом в течение нескольких часов и случайным образом показывает эту ошибку! так что я надеюсь, что, возможно, кто-то получил ту же ошибку и может помочь разобраться в этом.
Кстати, это общая учетная запись хостинга Windows. и я говорил со своими провайдерами, честно говоря, я думаю, что они хороши во всем (Seriosuly), но во всем, кроме нахождения этой конкретной ошибки! : D
Код:
.Aspx Page:
<li>
Profile Picture:
<asp:FileUpload ID="ProfilePic_Upld" runat="server" ViewStateMode="Enabled" /><br />
</li>
Код за файлом:
if (ProfilePic_Upld.HasFile)
{
string fileType = ProfilePic_Upld.PostedFile.ContentType;
if (fileType == "image/bmp" || fileType == "image/gif" || fileType == "image/jpeg" || fileType == "image/png")
{
if (ProfilePic_Upld.PostedFile.ContentLength <= 10485760)
{
string ppFileName = ProfilePic_Upld.PostedFile.FileName;
string savedFileName = newCruise.Name + "_pp" + ppFileName.Substring(ppFileName.IndexOf('.'));
string cruisePpUploadPath = Server.MapPath(ConfigurationManager.AppSettings["cruisesPpUploadPath"].ToString());
ProfilePic_Upld.SaveAs(cruisePpUploadPath + savedFileName);
newCruise.ProfilePic = savedFileName;
}
}
}
else
{
newCruise.ProfilePic = "default.jpeg";
}
Web.config (часть ApplicationSettings):
<appSettings>
<add key="cruisesPpUploadPath" value="~\resouces\cruises\cruise_pp\" />
<add key="cruisesDpUploadPath" value="~\resouces\cruises\cruise_dp\" />
<add key="cruisesClUploadPath" value="~\resouces\cruises\cruise_cl\" />
<add key="cruiseItinerariesPpUploadPath" value="~\resouces\cruises\itineraries\iti_pp\" />
<add key="cruiseItinerariesMapsUploadPath" value="~\resouces\cruises\itineraries\iti_maps\" />
<add key="cruiseReviewDocumentsUploadPath" value="~\resouces\cruises\reviews\" />
</appSettings>
Круиз-класс (newCruise)
public class Cruise
{
public int ID
{ get; set; }
public string Name
{ get; set; }
public int CountryID
{ get; set; }
public string ProfilePic
{ get; set; }
public string Description
{ get; set; }
public int OfficialRate
{ get; set; }
}
DAL Метод создания нового круиза
public static int AddNewCruise(Cruise NewCruise)
{
string commandText = "INSERT INTO Cruises (Name, CountryID, ProfilePic, Description, OfficialRate) VALUES (@Name, @CountryID, @ProfilePic, @Description, @OfficialRate); SELECT scope_identity();";
int newCruiseId;
Cruise newCruise = NewCruise;
string name = newCruise.Name;
int countryId = newCruise.CountryID;
string profilePic = newCruise.ProfilePic;
string desc = newCruise.Description;
int officialRate = newCruise.OfficialRate;
using (SqlConnection connection = new SqlConnection(ConnectionString))
{
using (SqlCommand command = new SqlCommand(commandText, connection))
{
command.Parameters.AddWithValue("@Name", name);
command.Parameters.AddWithValue("@CountryID", countryId);
command.Parameters.AddWithValue("@ProfilePic", profilePic);
command.Parameters.AddWithValue("@Description", desc);
command.Parameters.AddWithValue("@OfficialRate", officialRate);
connection.Open();
newCruiseId = Convert.ToInt32(command.ExecuteScalar());
return newCruiseId;
}
}
}
N.B У меня заканчивается срок, поэтому, если кто-то решит, что это проблема с сервером, надеюсь, вы могли бы порекомендовать несколько хороших провайдеров общего хостинга Windows.
N.B (2) Количество загружаемых изображений не превышает 1 МБ!
N.B (3) Ребята, пожалуйста, это очень важное замечание. В данный момент веб-сайт работает без каких-либо ошибок, и, тем не менее, вы правы в отношении обработки загруженного файла (который, между прочим, я обновил, добавив в него еще блоки для размера и типа файла при условии предоставления сообщения об ошибке и затем возврата;) Фактическая проблема заключается в том, что я использую тот же код, тот же веб-сайт, тот же сервер и настройки iis. то же самое приложение, и я также обновляю то же самое изображение, но я получаю ошибку случайно. это не может быть связано с обработкой файлов! Я загружаю изображение JPG размером 105 КБ. Однажды это работает, а другой нет! поэтому, однако, вы абсолютно правы в отношении обработки файла, и я уже последовал вашему совету, так как это дефект моей системы, но это не является причиной проблемы. Я бы очень хотел, чтобы все было так просто!
Вывод:
Прежде всего, проблема заключалась в том, что я тестирую при разработке на своем персональном ПК, где я использую Firefox, затем Я и клиент следим за работой с наших рабочих ПК, которые используют Internet Explorer. проблема заключалась в том, что не обрабатывались два условия для размера и типа, поэтому я не принимаю загруженный файл, но все равно вызываю метод базы данных, так что это был первый шаг. затем я просто следовал совету и возвращался всякий раз, когда какое-либо из условий не было выполнено, поэтому я загружаю одно и то же изображение в два разных экземпляра моего приложения (одно открывается из IE, а другое из FireFox). Firfox загружает нормально, но IE теперь отображает ошибку типа. Я провел небольшое исследование и выяснил, что IE получает jpg и png как прогрессивные типы (PJPEG и X-PNG), поэтому, добавив в мои условия типа image / jpeg и image / x-png, все работает отлично.
Спасибо за ваше время, высоко ценится =). Я надеюсь, что этот вопрос поможет, я не думаю, что это известная вещь в IE, но для меня я думаю, что это странно, и я верю, что другие люди изучают ту же проблему!