2009-08-13 3 views
9

web.config에 지정된 HTTP 처리기가 있습니다. 웹 사이트 프로젝트를 통해이 사이트를 운영 할 때 모두 정상적으로 작동했습니다. 그러나 WAP 프로젝트로 이식하고 .NET 3.5 프레임 워크를 가리킨 후 몇 가지 이유로 devag 상자에서 IIS 7의 사이트를 열면 처리기가 작동하지 않습니다. 내 web.config에 이미 존재하는 지정된 사용자 지정 처리기 이외의 IIS7에서 특별한 작업을 수행해야합니까?사용자 지정 HTTP 처리기 IIS7 및 ASP.NET

사이트의 IIS 7에서 처리기 매핑 섹션을 보면 세 가지 처리기가 사용자 지정 확장명과 함께 나열되어 있습니다. 따라서 web.config에 지정된 핸들러를 선택하는 것 같습니다. 그러나 WAP이 아닌 웹 사이트에서 작업하는 핸들러는이 WAP 프로젝트에서 작동하지 않으며 이유를 알지 못합니다. '/'응용 프로그램에

서버 오류 : 내가 얻을 참조 될 때 우리의 핸들러 중 하나가 킥을 시도 예를 들어

. 파서 오류 설명 :이 요청을 처리하는 데 필요한 리소스를 구문 분석하는 동안 오류가 발생했습니다. 다음의 특정 구문 분석 오류 세부 정보를 검토하고 소스 파일을 적절하게 수정하십시오. 나는 그것에 .customextension을 가지고 우리의 사이트에 하이퍼 링크를 클릭 할 때

Parser Error Message: Could not create type 'jaxHandler'. 

Source Error: 

Line 1: 
Line 2: 
Line 3: using System; 


Source File: /jaxHandler.ashx Line: 1 

Version Information: Microsoft .NET Framework Version:2.0.50727.3074; ASP.NET Version:2.0.50727.3074 

또한, 핸들러는 그것을 선택하지 않는 것 같습니다. 내가 하이퍼 링크를 클릭하면

그래서, 내가 얻을 :

HTTP Error 404.0 - Not Found 
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable. Detailed Error InformationModule IIS Web Core 
Notification MapRequestHandler 
Handler StaticFile 
Error Code 0x80070002 
Requested URL http://sss:80/somename.prod 
Physical Path C:\www\sss\somename.prod 
Logon Method Anonymous 
Logon User Anonymous 

개인 정보 보호에 대한 위의 경우에 (나는 'somename'및 'SSS'우리 회사 이름이 실제 텍스트를 대체했다).

IIS7의 Http 처리기 섹션을 보면 * .prod가 등록되어있는 것을 볼 수 있습니다. 그리고 여기에 우리가 사용자 정의 섹션에서 우리의 web.config에서 설정해야하는 방법이다 : IIS7에서 실행되는 ASP.NET 응용 프로그램의

<add name="sss" path="*.prod" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" preCondition="bitness32"/> 
+0

자세히 설명해주세요. "효과가 없다"는 말은별로 없다. –

+0

오케이, 훨씬 더 자세하게 추가했습니다. – PositiveGuy

답변

0

코드 작성이 필요합니다.

모든 C# 코드를 .ashx.cs 파일로 복사해야합니다. 실제로 새 .ashx를 만들고 C# 코드를 .ashx.cs 파일에 복사하는 것이 좋습니다.

웹 사이트가 동적으로 빌드됩니다. 웹 응용 프로그램 프로젝트는 Visual Studio의 다른 유사한 프로젝트 유형과 마찬가지로 소스 파일에 코드가 있어야하며 해당 코드를 어셈블리로 빌드해야합니다.

+0

.ashx에는 코드가 없습니다. 내가 참조. 네, 그것이 웹 사이트 프로젝트에 있었기 때문입니다. Gotcha – PositiveGuy

+0

당신은 그것을 가지고 있지만 "웹 사이트"라고 말합니다 - 그들은 프로젝트가 아닙니다. –

+0

글쎄요, 그들은 그렇습니다. – PositiveGuy

25

는 HttpHandlers은 당신의 Web.config의 <system.webServer> 섹션에 매핑해야합니다. IIS6에서 그들은 <system.web> 섹션에 매핑되었습니다.

<system.webServer> 
    <handlers> 
     <add name="HandlerName" 
      path="HandlerPath" verb="*" type="Handler.Type" 
      resourceType="Unspecified" /> 
    </handlers> 
</system.webServer> 
+1

예. 우리 사이트가 이미 IIS7의 서버에서 실행 중이기 때문에 webServer에 매핑되었습니다. – PositiveGuy

관련 문제