source

윈도우즈 서버 2008 IIS 7에서 ASP.NET 4.5 MVC 4가 작동하지 않음

lovecheck 2023. 8. 20. 11:57
반응형

윈도우즈 서버 2008 IIS 7에서 ASP.NET 4.5 MVC 4가 작동하지 않음

분명히 뭔가를 놓치고 있습니다. 단순한 ASP를 구축할 수 없습니다.IIS 7의 Windows Small Business Server 2008에서 NET MVC 4, .NET 4.5 앱.

.NET Framework 4.5가 설치됩니다.

애플리케이션의 Application Pool 기본 설정에 해당 버전(4.5)이 표시되어야 합니까?지금은 2.0과 4.0밖에 없는데, 4.5는 4.0 프레임워크 위에만 추가되는 3.5와 같기 때문에 이것은 정상이라고 생각합니다.

홈 페이지를 검색할 때 다음 오류가 발생했습니다.

403 - 금지됨:액세스가 거부되었습니다.제공한 자격 증명을 사용하여 이 디렉터리 또는 페이지를 볼 수 있는 권한이 없습니다.

Page /page/index라는 유일한 컨트롤러를 요청하면 404 not found 페이지가 나타납니다.ASP처럼 말입니다.NET 프로세스는 http 요청을 수신하지 않습니다.

간단한 HTML 페이지를 요청할 수 있습니다.

응용 프로그램 풀은 로 설정됩니다.NET 4.0 및 통합을 관리 파이프라인 모드로 제공합니다.

NETWORK SERVICE가 디렉토리에 대한 읽기/쓰기 권한을 가지고 있습니다.

물론 그 앱은 VS2012부터 완벽하게 작동합니다.

저는 여기서 무엇이 옳지 않은지 잘 모르고, 검색 엔진 쿼리는 별로 도움이 되지 않습니다.

누군가 힌트를 가지고 있다면, 그것은 매우 감사하겠습니다.감사해요.

편집

dll은 System과 같은 bin 폴더에 이미 있습니다.웹.MVC, 시스템.웹.레이저 등

asp.net worker process가 요청을 받고 있는지 확인하기 위해 빈 test.aspx 페이지를 만들었고, 네, 페이지가 정상이었습니다.그래서 제가 ASP를 가지고 있지만 MVC 라우팅이 작동하지 않는 것 같습니다.NET MVC 3 웹 앱이 해당 서버에서 정상적으로 작동합니다.

그 다음에.NET 4.5 설치 앱에 aspnet_client 폴더를 추가한 경우 aspnet_regiis -iru를 수행했지만 여전히 문제가 해결되지 않습니다.

익명 인증은 IIS 인증 섹션에서 사용되며, 인증 쇼는 모든 사용자에게 허용됩니다.

ASP.NET MVC 4가 설치되어 있습니다. 확인하기 위해 수리를 했습니다.

ASP에도 불구하고 말입니다.NET MVC 4가 설치되면 표준 ASPNET 오류가 아닌 표준 IIS에서 /page/index 작업을 요청할 때 발생하는 404 오류가 반환됩니다.그래서 MVC 4 프레임워크가 제대로 설치되지 않은 것처럼 보입니다. 다시 확인하고 수리만 하면 됩니다.어디서 계속 조사할 수 있습니까?

@미스터 맨, 애플리케이션 풀 ID를 사용하도록 익명 인증을 변경했습니다. 앱을 중지하고 시작한 후에도 여전히 동일한 오류가 발생합니다.마치 ASP처럼 보입니다.NET MVC 4가 요청을 수락하지 않습니다.

다음은 web.config의 일부입니다.

  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <handlers>
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
  </system.webServer>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
  </entityFramework>

2012/09/27 편집

Microsoft Framework를 다시 페어링했습니다.NET 4.5 및 ASP 수리.NET MVC 4, 단순 ASP를 다시 배포합니다.NET MVC 4 앱, 그리고 저는 여전히 같은 행동을 합니다.저는 다음에 무엇을 해야 할지 확신할 수 없어서, 누군가 제가 문제를 찾는 것을 도와줄 수 있기를 바라는 마음으로 현상금을 내기 시작했습니다.

2014/01/31 편집

이 질문을 했을 때 runAllManagedModulesForAllRequests가 문제를 해결했기 때문에 허용된 답변으로 플래그를 지정했습니다.하지만 저는 이것을 생산에 사용하지 않을 것입니다.왜 이런 일을 해야 하는지, 아무런 답이 없었는지 묻습니다.

Martin Hollingsworth의 답변보다 Run AllManaged ModulesForAllRequests와 관련된 모든 성능 문제 없이 이 문제를 해결할 수 있는 좋은 방법이 있었습니다.

우리는 거의 포기하고 새로운 Windows 2012 서버(ASP)를 구입했습니다.NET MVC 앱은 그대로 작동합니다.Martin의 솔루션을 시도한 후 윈도우즈 2008 서버가 작동했습니다.

사용해 보십시오.

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
    ...
</system.webServer>

편집:

위의 솔루션은 에 적용됩니다.NET 3.5 이하.를 사용하는 경우.NET 4.0 이상에서는 IIS7 QFE를 설치해 볼 수 있습니다.

또한, 기사는 그 둘의 차이점을 이해하기 위해 읽을 가치가 있습니다.

kb 980368에서 QFE를 적용할 수 없는 경우 수락된 답변에 제시된 대로 runAllManagedModulesForAllRequests 솔루션을 사용하는 대신 아래에 표시된 preCondition="을 사용하여 모듈 구성을 사용하여 블로그 게시물 Howasp에 설명된 정적 콘텐츠에 대한 부정적인 영향을 방지해야 합니다.NET MVC 라우팅이 작동하고 정적 요청의 성능에 미치는 영향 및 MVC 라우팅이 작동하도록 할 때 runAllManagedModulesForAllRequests="true"를 사용하지 마십시오.

Scott Hanselman의 runAllManagedModulesForAllRequests에 대한 블로그 게시물은 이 주장에 약간의 무게를 더해줄 입니다.IIS 7/8에서 runAllManagedModulesForAllRequests를 사용Rick Strahl의 게시 경고는 내가 찾은 설정 간의 상호 작용에 대한 가장 좋은 설명입니다.모듈 preCondition 특성에 대한 IIS 설명서도 읽을 가치가 있습니다.

이 동작이 기본값이 되므로 QFE를 적용한 경우에는 이 구성 변경이 필요하지 않습니다.

<system.webServer>
  <modules>
    <remove name="UrlRoutingModule-4.0" />
    <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
  </modules>
</system.webServer>

저도 비슷한 문제가 있었습니다.여기에 설명된 많은 솔루션(웹)을 사용해 보았습니다.시스템을 구성합니다.웹 서버 구성 항목 등)을 사용할 수 없습니다.마지막에 특정 설치의 문제가 무엇인지 알게 되었습니다.저는 제 웹사이트를 로컬 파일 시스템에 게시하고 그 파일들을 서버에 복사하고 있었습니다.Global.asax 파일이 게시된 파일의 일부가 아닌 것으로 확인되었습니다.그 파일을 복사하자 오류가 사라졌습니다.

https://stackoverflow.com/a/12521807/695829 에 따름

저도 같은 문제가 있었고 이 핫픽스가 수정되었습니다: : http://support.microsoft.com/kb/980368

SonicTheLichen에서 언급했듯이 Visual studio에서 게시하는 경우 global.asax 파일은 기본적으로 복사되지 않습니다.global.asax를 웹 서버에 복사하면 문제가 해결됩니다.소닉 더 리헨이 솔루션을 증명해 주셔서 감사합니다.

잘 부탁드립니다, 사우라브

이것이 당신의 문제를 해결할 수 있을지는 모르겠지만, 제가 배포하고 MVC 앱을 IIS로 수정했습니다.

애플리케이션의 홈/가상 디렉토리에 대한 aspnet_isapi.dll에 와일드카드 애플리케이션 맵을 추가해야 했습니다.웹 사이트/가상 디렉터리를 마우스 오른쪽 단추로 클릭하고 홈 디렉터리/가상 디렉터리 탭을 선택한 다음 구성 단추를 클릭한 다음 와일드카드 응용 프로그램 맵 섹션 아래에 있는 삽입 단추를 클릭하여 이 작업을 수행할 수 있습니다.

C:\WINDOWS\microsoft.net \Framework64\v4.0.30319\aspnet_isapi.dll

행운을 빕니다.

저도 비슷한 문제가 있었습니다.윈도우즈 2008 및 IIS 7.5가 설치된 새 서버에 .net MVC 사이트를 배포해야 했습니다.제가 프로그램과 기능을 확인했을 때, 저는 그것만 보았습니다.NetFramework 4.5.1이 설치되었습니다.수동으로 사용하도록 설정했습니다.Net 3.5.1 Windows 기능.MVC 4.0을 설치한 후 라우팅이 작동하지 않았습니다.

해결책은 다음과 .
vmdk 파일을 합니다. 4 4.0Net 4.5.1은 MVC 4.0
vmdk를 합니다. 4 버전 4.0
설치합니다.넷 프레임워크 4.5.1
4 MVC 4.0 설치하기

오래된 작업이지만 Windows 업데이트로 인해 몇 시간이 낭비되었습니다.

Global.asax에서 예외를 처리하는 경우 Windows 업데이트를 개발 환경과 동일하게 유지하는 것도 간단합니다.저는 분명히 이로 인해 "cannot load..." 예외가 발생하지 않았습니다. 이 예외는 제 글로벌.asax가 처리하려고 시도했지만 같은 문제가 있었지만 근본적인 문제를 숨기고 있었습니다.

IIS의 웹 사이트 속성에 있는 처리기 매핑 섹션에서 스크립트를 활성화해야 했습니다.

Handler Mappings

IIS를 열고 해당 웹 사이트를 클릭합니다.처리기 매핑을 열고 "기능 권한 편집"을 클릭합니다.[스크립트] 및 [실행] 확인란을 선택한 후 [확인]을 누릅니다.파이팅!

언급URL : https://stackoverflow.com/questions/12495346/asp-net-4-5-mvc-4-not-working-on-windows-server-2008-iis-7

반응형