Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.
Например, ниже - класс ученика, который будет использовать его в нашем коде.
public class Student {
private int id;
public int getId() {
return this.id;
}
public setId(int newId) {
this.id = newId;
}
}
Приведенный ниже код дает вам исключение с нулевым указателем.
public class School {
Student obj_Student;
public School() {
try {
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Поскольку вы используете Obj_Student
, но вы забыли инициализировать его, как в правильном коде, показанном ниже:
public class School {
Student obj_Student;
public School() {
try {
obj_Student = new Student();
obj_Student.setId(12);
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Иногда причина может быть одной из ваших сборников .dll, не зарегистрирована на сервере правильно.
Например, вы можете успешно запустить веб-приложение C # Excel на своем локальном компьютере с установленным Office, при получении 500 ошибок при развертывании сервера, поскольку на сервере не установлен пакет Office, и, следовательно, вы получаете ошибку сервера.
500 Внутренняя ошибка Ошибка хостинга Windows Ошибка Godaddy Хостинг
blockquote>Я столкнулся с той же проблемой, но теперь моя проблема решена. Всегда используйте в этом хостинге, что это работает.
Я также рекомендую всем сделать все изменения, которые вы хотите внести в свой файл web.config. Пожалуйста, сделайте это один за другим и протестируйте их на живом домене, чтобы вы могли найти точную проблему или функции, которые ваш хостинг-провайдер не позволяет вам использовать.
<?xml version="1.0"?> <configuration> <system.web> <trust level="Medium"/> <compilation debug="true" targetFramework="4.5"> <assemblies> <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> </assemblies> </compilation> <httpRuntime targetFramework="4.5" /> <sessionState mode="InProc" cookieless="false" timeout="90" /> <authentication mode="Forms"> <forms loginUrl="default.aspx" defaultUrl="default.aspx" protection="All" cookieless="UseCookies" slidingExpiration="false" timeout="30" name="aeon.corpusjuris.in" /> </authentication> <customErrors mode="Off" defaultRedirect="errorpage.aspx"> <error statusCode="403" redirect="errorpage.aspx"/> <error statusCode="404" redirect="errorpage.aspx"/> </customErrors> <!-- <httpModules> <add name="HTTPCaching" type="HTTPCaching"/> </httpModules> --> </system.web> <runtime> <performanceScenario value="HighDensityWebHosting" /> </runtime> <system.webServer> <!-- <modules runAllManagedModulesForAllRequests="true"> <add name="HTTPCaching" type="HTTPCaching"/> </modules> --> <defaultDocument> <files> <clear /> <add value="default.aspx" /> </files> </defaultDocument> <httpErrors errorMode="Detailed" /> <asp scriptErrorSentToBrowser="true"/> <staticContent> <clientCache cacheControlCustom="public" cacheControlMaxAge="60:00:00" cacheControlMode="UseMaxAge" /> </staticContent> </system.webServer> <system.web.extensions> <scripting> <webServices> <jsonSerialization maxJsonLength="90000000"> </jsonSerialization> </webServices> </scripting> </system.web.extensions> </configuration>
Для IIS 8
<system.web>
<customErrors mode="Off" />
</system.web>
<system.webServer>
<httpErrors existingResponse="PassThrough" errorMode="Detailed">
</system.webServer>
В дополнение к другим предложениям не забудьте изменить атрибут existingResponse
узла httpErrors
на Auto
из Replace
или полностью удалить это свойство.
<httpErrors existingResponse="Replace" />
^^^^^^^ not going to work with this here
Убедитесь, что ваша учетная запись использует IIS 7. Дополнительные сведения см. в разделе Настройка параметров IIS в учетной записи хостинга Windows. Следуйте инструкциям в разделе «Изменение режима трубопровода» на учетной записи хостинга Windows IIS 7. Выберите «Интегрированный режим трубопровода». В разделе «Ссылки на проекты» установите для параметра «Копировать локальное» значение «Истина» для следующих сборок:
System.Web.Abstractions
System.Web.Helpers
System.Web.Routing
System.Web.Mvc
System.Web.WebPages
Добавьте в свой проект следующие сборки, а затем установите «Копировать локальное» в «Истинный»:
Microsoft.Web.Infrastructure
System.Web.Razor
System.Web.WebPages.Deployment
System.Web.WebPages.Razor
Publish your application.
IIS также сообщает код состояния 500 без подсказок журнала событий, если в физическом домашнем каталоге недостаточно разрешений (т. е. IIS_IUSRS не имеет доступа).
Ошибка внутреннего сервера 500 может возникнуть по нескольким причинам. Первая причина может заключаться в том, что файл web.config не создан должным образом, означает, что вы пропустили какой-либо тэг в файле web.config. Во-вторых, эта ошибка может быть вызвана некоторой проблемой кода. Чтобы проверить, какой компонент веб-приложения вызывает эту ошибку, вы можете проверить настройку приложения в файле web.config. Подробное описание и устранение ошибки внутреннего сервера 500 с диаграммой приведено здесь:
Я понял, что разрешения для файлов и папок на вашем сервере также имеют значение. Я загрузил свои файлы из операционной системы Linux, и, как правило, разрешения ограничены для чтения и записи. Поэтому при загрузке разрешение остается таким же, как на локальном компьютере.
У меня была такая же ошибка, и я просто изменил разрешения для папки, которую я загрузил, и ошибка исчезла.
Надеюсь, что это кому-то поможет.
Если вы используете пользовательский HttpHandler (т. е. реализуете IHttpModule
), убедитесь, что вы проверяете вызовы на его метод Error
.
Вы могли бы обработать ваш обработчик фактическим HttpExceptions
(которые имеют полезное свойство Message
) во время локальной отладки, например:
public void Error(object sender, EventArgs e)
{
if (!HttpContext.Current.Request.IsLocal)
return;
var ex = ((HttpApplication)sender).Server.GetLastError();
if (ex.GetType() == typeof(HttpException))
throw ex;
}
Также убедитесь, что вы проверяете Исключение InnerException
.
Для тех, у кого есть такая возможность (VPS-хостинг, а не веб-хостинг):
Подключитесь к вашему серверу хостинга через Remote Desktop. Откройте веб-браузер с удаленного рабочего стола, и вы увидите подробное описание ошибки.
Вам не нужно изменять web.config или предоставлять какие-либо подробности кому-либо еще.
Прежде чем сменить файл web.config
, я хотел бы проверить, что версия .NET Framework
, которую вы используете, в точности (я имею в виду, 4.5! = 4.5.2) по сравнению с вашими настройками GoDaddy
(ASP. Чистые настройки в вашем Plesk panel
). Это должно автоматически изменить ваш файл web.config на правильную структуру. Также обратите внимание, что на данный момент (январь -16), GoDaddy
работает с ASP.Net 3.5
и 4.5.2
. Чтобы использовать 4.5.2
с Visual Studio, он должен быть 2012
или новее, а если не 2015, вы должны загрузить и установить пакет разработчика .NET Framework 4.5.2. Если все еще не работает, то да, ваш следующий шаг должен включать подробные отчеты об ошибках, чтобы вы могли его отлаживать.
Если вы используете IIS 8.5, возможно, вам нужно изменить параметр ApplicationPool ID из ApplicationPoolId в NetworkService
Щелкните правой кнопкой мыши на пуле приложений, нажмите «Дополнительные настройки», а затем прокрутите вниз для ID - вероятно, он будет установлен в ApplicationPoolIdentity. Нажмите кнопку (..) и выберите NetworkService из выпадающего списка.
Также убедитесь, что если это приложение .NET 2.0, вы не ссылаетесь на фреймворк 4.0 в своем пуле приложений.
Для меня следующий код в web.config был виновником. Когда я удалил его, веб-сайт работал нормально.
<staticContent>
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
</staticContent>
run the browser on the server
работал для меня .. спасибо брат – Rajshekar Reddy 14 November 2016 в 08:56