출처 : http://blog.naver.com/techshare/100193629134
이 글은 다음의 질문에 대한 답변입니다.
즉, .html 파일을 .aspx로 확장자를 변환하지 않고 그 상태에서 asp.net 코드를 동작시키는 방법인데요.
일단, asp.net 기능을 하는 간단한 .html 파일을 만들어 볼까요?
위의 페이지를 IIS 7.5 웹 사이트에 올려 놓고 방문하면 다음과 같이 ^^ 출력됩니다.
IIS에 Integrated Mode가 생긴 이후로 handler 추가 방법이 다소 달라져서 답에 대한 검색을 할 때 약간 주의를 해야 하는데, 다행히 다음의 글에서 원하는 답을 찾을 수 있었습니다. ^^
따라서, web.config 파일에 다음과 같은 내용을 추가해 주어야 합니다.
이렇게 추가해 주고 나면 .html 확장자를 방문해도 정상적으로 asp.net 처리가 잘 됩니다. ^^
iis7.5 html 에서 asp 코드 사용가능 설정 ; http://social.technet.microsoft.com/Forums/ko-KR/d306eb78-bdba-4e9f-b746-52cff590d253/iis75-html-asp-
즉, .html 파일을 .aspx로 확장자를 변환하지 않고 그 상태에서 asp.net 코드를 동작시키는 방법인데요.
일단, asp.net 기능을 하는 간단한 .html 파일을 만들어 볼까요?
<%@ Page language="c#" %> <!DOCTYPE html> <html> <head> <title>구구단</title> </head> <body> <form action="./mycalc.aspx"> 단: <input type="text" name="n" /> <input type="submit" value="보기" /><br /> </form><br /> <% int number, i; string txt = Request.QueryString["n"]; if (string.IsNullOrEmpty(txt) == true) { return; } number = Int32.Parse(txt); if (number != 0) { %> <b><% Response.Write(number); %> 단</b><br /> <br /> <% for (i = 1; i <= 9; i ++) { %> <%=number%> * <%=i%> = <%=number * i%><br /> <% } } %> </body> </html>
위의 페이지를 IIS 7.5 웹 사이트에 올려 놓고 방문하면 다음과 같이 ^^ 출력됩니다.
IIS에 Integrated Mode가 생긴 이후로 handler 추가 방법이 다소 달라져서 답에 대한 검색을 할 때 약간 주의를 해야 하는데, 다행히 다음의 글에서 원하는 답을 찾을 수 있었습니다. ^^
.htm files are not being processed by aspnet ; http://forums.iis.net/t/1182893.aspx/1
따라서, web.config 파일에 다음과 같은 내용을 추가해 주어야 합니다.
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.web> <compilation> <buildProviders> <add extension=".htm" type="System.Web.Compilation.PageBuildProvider" /> <add extension=".html" type="System.Web.Compilation.PageBuildProvider" /> </buildProviders> </compilation> </system.web> <system.webServer> <handlers> <remove name="PageHandlerFactory-Integrated" /> <add name="PageHandlerFactory-Integrated" path="*.aspx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode" /> <add name="PageHandlerFactory-Integrated-htm" path="*.htm" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode" /> <add name="PageHandlerFactory-Integrated-html" path="*.html" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode" /> </handlers> </system.webServer> </configuration>
이렇게 추가해 주고 나면 .html 확장자를 방문해도 정상적으로 asp.net 처리가 잘 됩니다. ^^