웹 사이트 배포: 500 - 내부 서버 오류
ASP를 배포하려고 합니다.NET 응용 프로그램.IIS에 사이트를 배포했지만 브라우저를 사용하여 사이트를 방문하면 다음과 같이 표시됩니다.
서버 오류
500 - 내부 서버 오류입니다.
찾고 있는 리소스에 문제가 있어 표시할 수 없습니다.
web.config를 만지작거리다가 다음과 같은 정보를 얻었습니다.
내부 서버 오류가 발생하여 페이지를 표시할 수 없습니다.
이 서버 오류의 실제 문제를 확인하려면 어떻게 해야 합니까?
먼저 웹 메시지에 대한 자세한 오류를 확인하고 활성화해야 합니다. 웹 메시지는 보안상의 이유로 실제로 발생하는 정보를 제공하지 않는 일반적인 메시지이기 때문입니다.
자세한 오류가 발생하면 여기에서 실제 문제를 찾을 수 있습니다.
또한 서버에서 브라우저를 실행할 수 있는 경우, 서버는 사용자가 로컬임을 인식하고 사용자에게 표시하기 때문에 오류에 대한 세부 정보를 얻을 수 있습니다.또는 이벤트 뷰어를 사용하여 서버의 로그를 읽을 수 있는 경우 오류에 대한 세부 정보도 볼 수 있습니다.
###IIS 6에서
<configuration>
<system.web>
<customErrors mode="Off"/>
<compilation debug="true"/>
</system.web>
</configuration>
###IIS 7에서
<configuration>
<system.webServer>
<httpErrors errorMode="Detailed" />
<asp scriptErrorSentToBrowser="true"/>
</system.webServer>
<system.web>
<customErrors mode="Off"/>
<compilation debug="true"/>
</system.web>
</configuration>
참고: Debug=true는 피할 수 있습니다.잠시 동안 사용자 지정 오류를 닫고 자세한 오류 페이지를 표시하면 됩니다.
이는 다음과 같은 이점이 있습니다.IIS에서 상세 오류 메시지를 활성화하는 방법.
저는 이 문제로 머리를 쥐어뜯고 있었습니다.에 있는지 합니다.web.config파일이 나를 위해 그것을 고쳤습니다:
<configuration>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
</configuration>
기존 XML 요소가 이미 있는 경우 이 요소를 기존 XML 요소에 추가해야 합니다.요소의 복사본을 여러 개 가질 수 없기 때문에 파일 끝에만 추가할 수 없습니다.
저는 web.config의 다음 코드가 원인이었습니다.제가 그것을 제거했을 때, 웹사이트는 정상적으로 작동했습니다.
<staticContent>
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
</staticContent>
ASP를 배포할 때 이 "500개의 내부 서버" 오류를 드디어 해결했습니다.godaddy.ocm 공유 호스팅에서 NET MVC 3.0 응용 프로그램.
된 DLL 파일 .web.config.
저는 다양한 포럼에서 언급된 모든 옵션을 시도했습니다.모두가 같은 종류의 해결책을 제안했지만, 제 시나리오에서는 어떻게든 효과가 없었습니다.마침내 이틀 동안 머리를 부딪친 후에.저는 모든 DLL 파일 참조를 삭제하고 프로젝트에서 web.cofig(로컬 복사본 만들기)를 삭제하고 응용 프로그램이 오류를 발생시킨 다음 DLL 파일을 하나씩 추가하여 local=true에 복사하기로 결정했습니다.
DLL 파일이 모두 추가된 후, 저는 새로운 ASP를 만들었습니다.NET MVC 응용 프로그램과 새 응용 프로그램의 web.config를 실제 응용 프로그램에 복사했습니다.그래서 제 실제 응용 프로그램은 이제 새로운 web.config를 가지고 있고, 저는 제가 저장한 web.config의 로컬 복사본에서 연결 문자열과 다른 참조를 복사했습니다.
저는 방금 애플리케이션을 컴파일하여 로컬 폴더에 게시하고 게시된 폴더를 FTP로 goDaddy로 보냈습니다.
그것은 효과가 있었고 마침내 저의 문제가 해결되었습니다.
제 경우에는, 제가 실수를 했습니다.web.config파일. 애플리케이션 키가 어떻게든 <appSettings> 태그 아래에 놓였습니다.그런데 왜 구성 오류가 표시되지 않는지 궁금합니다.오류 500은 문제를 조사하기에는 너무 일반적입니다.
HTML만 서비스하는 매우 간단한 사이트를 게시하고 실행하려는 첫 번째 시도는 "내부 서버 오류가 발생했기 때문에 페이지를 표시할 수 없습니다."입니다.
문제:사이트를 로 설정했습니다.Visual Studio의 NET 3.5(오른쪽 클릭 웹 사이트 프로젝트 -> 속성 페이지 -> 빌드), 그러나 Azure의 웹 사이트는 로 구성되었습니다.NET 4.0.앗! Azure에서 3.5로 바꿨더니 작동했습니다.
다른 제안 외에도, 반드시 변경해야 합니다.existingResponse의 속성httpErrors에 동의하는.Auto부터Replace또는 해당 속성을 완전히 제거할 수 있습니다.
<httpErrors existingResponse="Replace" />
^^^^^^^ not going to work with this here
서버 오류 500 - 내부 서버 오류입니다.찾고 있는 리소스에 문제가 있어 표시할 수 없습니다.세상에, 세상에!호스팅 - 웹 - 경제 - Windows Plesk
이 코드는 다음과 같습니다.
<configuration>
<system.webServer>
<httpErrors errorMode="Detailed" />
<asp scriptErrorSentToBrowser="true"/>
</system.webServer>
<system.web>
<customErrors mode="Off"/>
<compilation debug="true" targetFramework="4.0"/>
</system.web>
</configuration>
그런 다음 프레임워크 3.5를 프레임워크 4로 변경합니다.그것은 나의 상세한 오류를 보여줍니다.코드 삭제 위치:
<httpModules></httpModules>
그것이 제 문제를 해결했습니다.
또한 IIS는 물리적 홈 디렉토리에 대한 사용 권한이 충분하지 않은 경우(즉, IIS_IUSRS에 액세스할 수 없는 경우) 이벤트 로그 힌트 없이 상태 코드 500을 보고합니다.
IIS 10의 경우 오류 내용을 표시하기 위해 customErrors=Off를 변경하는 것 외에 추가로 수행해야 할 단계가 있습니다.
<system.web>
<customErrors mode="Off" />
</system.web>
<system.webServer>
<httpErrors existingResponse="PassThrough" errorMode="Detailed"/>
</system.webServer>
Raul은 이 링크의 질문에 답했습니다. Raul의 IIS8 사용자 지정 오류 끄기
web.config 파일이 잘못되었거나 태그가 누락되었을 수 있습니다.에 대한 올바른 구성 태그를 사용하여 문제를 해결했습니다.NET 4.
<system.web>
<compilation debug="true" strict="false" explicit="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Deployment, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
<namespaces>
<clear/>
<add namespace="System"/>
<add namespace="System.Collections"/>
<add namespace="System.Collections.Specialized"/>
<add namespace="System.Configuration"/>
<add namespace="System.Text"/>
<add namespace="System.Text.RegularExpressions"/>
<add namespace="System.Web"/>
<add namespace="System.Web.Caching"/>
<add namespace="System.Web.SessionState"/>
<add namespace="System.Web.Security"/>
<add namespace="System.Web.Profile"/>
<add namespace="System.Web.UI"/>
<add namespace="System.Web.UI.WebControls"/>
<add namespace="System.Web.UI.WebControls.WebParts"/>
<add namespace="System.Web.UI.HtmlControls"/>
</namespaces>
</pages>
<authentication mode="None"/>
</system.web>
서버의 파일 및 폴더에 대한 권한도 중요하다는 것을 알았습니다.Linux 운영 체제에서 파일을 업로드했으며 일반적으로 읽기 및 쓰기 권한이 제한됩니다.따라서 업로드할 때 권한은 로컬 시스템과 동일합니다.
저도 같은 오류가 있었고 방금 업로드한 폴더에 대한 권한을 변경했는데 오류가 사라졌습니다.
누군가에게 도움이 되길 바랍니다.
오류 500 내부오
오류 Windows 오류
고다디 호스팅 문제
저는 같은 문제에 직면해 있었지만, 이제 제 문제는 해결되었습니다.이 호스팅에서 항상 사용하면 작동합니다.
또한 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>
HttpHandler)를 사용하는 에는 "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.
몇 가지 이유로 인해 500개의 내부 서버 오류가 발생할 수 있습니다.첫 번째 이유는 web.config 파일이 제대로 생성되지 않았기 때문일 수 있습니다. 즉, web.config 파일에서 일부 태그를 놓쳤습니다.두 번째로 이 오류는 코드 문제로 인해 발생할 수 있습니다.웹 응용 프로그램의 어떤 구성 요소가 이 오류를 유발하는지 확인하려면 web.config 파일의 응용 프로그램 설정을 확인합니다.다이어그램을 사용하여 500개의 내부 서버 오류를 해결하고 추적하는 자세한 내용은 다음과 같습니다.
계정이 IIS 7을 사용하는지 확인하십시오. 자세한 내용은 Windows 호스팅 계정의 IIS 설정 사용자 지정을 참조하십시오.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.
.dll 어셈블리 중 하나가 서버에 올바르게 등록되지 않은 경우가 있습니다.
예를 들어 Office가 설치된 로컬 컴퓨터에서 C# Excel 웹 응용 프로그램을 성공적으로 실행할 수 있지만 서버에 Office 제품군이 설치되어 있지 않기 때문에 서버 배포 시 500 오류가 발생합니다.
이러한 가능성이 있는 사용자(웹 호스팅이 아닌 VPS 호스팅):
원격 데스크톱을 통해 호스팅 서버에 연결합니다.원격 데스크톱에서 웹 브라우저를 열면 오류에 대한 자세한 설명이 표시됩니다.
web.config를 수정하거나 다른 사람에게 세부 정보를 노출할 필요가 없습니다.
IIS 8.5를 사용하는 경우 ApplicationPool ID 설정을 ApplicationPoolId에서 NetworkService로 변경해야 할 수 있습니다.
해당 응용 프로그램 풀을 마우스 오른쪽 단추로 클릭하고 "고급 설정"을 클릭한 다음 ID로 스크롤합니다. 그러면 ApplicationPoolIdentity로 설정됩니다.대신 버튼(...)을 클릭하고 드롭다운 목록에서 네트워크 서비스를 선택합니다.
또한 해당 항목이 a인지 확인합니다.앱 풀에서 4.0 프레임워크를 참조하지 않는 NET 2.0 애플리케이션.
변하기전에를 web.config파일, 나는 확인할 것입니다..NET Framework하고 있는 은 당신의은. (▁(▁that, 4 4.GoDaddyvmx(ASP)).의 넷 Plesk panel그러면 web.config 파일이 자동으로 올바른 프레임워크로 변경됩니다.
1월), 고지금은월년그리 (16월 1))에하십시오.GoDaddy와 함께 작동합니다.ASP.Net 3.5그리고.4.5.2사용하기4.5.2 Visual Studio여야 .2012또는 더 최신 버전이며 2015년이 아니면 를 다운로드하여 설치해야 합니다.NET Framework 4.5.2 버전.
그래도 작동하지 않는 경우에는 디버깅할 수 있도록 자세한 오류 보고를 활성화해야 합니다.
최근에 같은 문제가 발생했는데 서버의 디스크 공간이 꽉 찼습니다.일부 공간을 비우면 문제가 해결되었습니다.
Debug 모드(Visual Studio)에서 컴파일해 보십시오.릴리스 모드인 경우 많은 URL 다시 쓰기 오류를 사용할 수 없습니다.
이미지에는 Visual Studio의 디버그 선택 콤보 상자가 표시됩니다.
언급URL : https://stackoverflow.com/questions/5385714/deploying-website-500-internal-server-error
'programing' 카테고리의 다른 글
| String. 무시 대소문자 바꾸기 (0) | 2023.04.27 |
|---|---|
| 각도 2에서 다른 구성 요소 함수를 호출하는 방법 (0) | 2023.04.27 |
| web.config 파일에서 appSettings 섹션을 읽는 방법은 무엇입니까? (0) | 2023.04.27 |
| Azure DevOps - YAML 대신 GUI를 사용하여 빌드 파이프라인을 편집합니다. (0) | 2023.04.27 |
| Azure 웹사이트에서 machineKey를 설정하는 방법 (0) | 2023.04.27 |
