성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] Working with Rust Libraries from C#...
[정성태] Detecting blocking calls using asyn...
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
[정성태] "props[i].GetValue(props[i])" 코드에서 ...
[정성태] 저렇게 조각 코드 말고, 실제로 재현이 되는 예제 프로젝트를 압...
[정성태] Modules 창(Ctrl+Shift+U)을 띄워서, 해당 Op...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <div style='font-family: 맑은 고딕, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>Pet Shop 4.0을 IIS 없이 실행하는 방법</div><br /> <br /> ASP.NET 예제를 최대한 간단하게 실행해 보는 방법이 무얼까 생각해 보았습니다. 우선, 예제를 직접 코딩하는 시간이 아까우니 적당한 예제를 찾아야겠지요. 그래서 발견한 것이 Pet Shop 4.0입니다.<br /> <br /> 그런데, "간단한 예제"라고 보기에는 실행하기 위한 절차가 복잡합니다. SQL Express도 설치해야 하고 IIS도 구성해야 합니다. 예제가 필요한 사람에게 그 2가지를 일일이 PC에 설치하라고 하는 것도 부담입니다.<br /> <br /> 일단, SQL Express에 대한 의존성은 지난번 글을 통해서 없앨 수가 있었습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; width: 800px; background-color: #fbedbb; overflow-x: scroll; font-family: Consolas, Verdana;' > Pet Shop 4.0 - SQL Server Compact Edition Version - 두 번째 이야기 ; <a target='_tab' href='/2/0/815'>http://www.sysnet.pe.kr/2/0/815</a> </pre> <br /> 자, 이제 IIS가 남았는데요. 이에 대한 해결책으로 "Cassini"를 생각해냈습니다. 이후의 글에서 다룬 cassini 소스 코드는 다음의 글에서 다운로드 받은 3502 버전입니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; width: 800px; background-color: #fbedbb; overflow-x: scroll; font-family: Consolas, Verdana;' > Cassini: Support for Friendly URLs / Routing (cassini-v3502.zip) ; http://blogs.msdn.com/dmitryr/archive/2009/04/23/cassini-support-for-friendly-urls-routing.aspx </pre> <br /> <hr style='width: 50%' /><br /> <br /> <div style='font-family: 맑은 고딕, Consolas; font-size: 12pt; color: #2211AA; text-align: left; font-weight: bold'>1. Cassini 소스 코드 변경</div><br /> Pet Shop 4.0 솔루션에 "Cassini-v35" 프로젝트를 추가하고 시작 폴더를 아예 Pet Shop 4.0의 배포 폴더로 지정해서 바로 웹 애플리케이션을 실행할 준비를 마쳤습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; width: 800px; background-color: #fbedbb; overflow-x: scroll; font-family: Consolas, Verdana;' > Cassini 프로젝트 - Main.cs [DllImport("shlwapi.dll", CharSet = CharSet.Auto, SetLastError = true)] public static extern bool PathCanonicalize([Out] StringBuilder dst, string src); public MainForm(String[] args) { ... [생략] ... <b style='COLOR: blue'>_portString = "8099"; _virtRoot = "/";</b> StringBuilder sb = new StringBuilder(); <b style='COLOR: blue'>PathCanonicalize( sb, Path.Combine(Environment.CurrentDirectory, @".\Web"));</b> _appPath = sb.ToString(); ... [생략] ... } </pre> <br /> <div style='font-family: 맑은 고딕, Consolas; font-size: 12pt; color: #2211AA; text-align: left; font-weight: bold'>2. 플랫폼 설정 변경: 32비트</div><br /> <br /> SQL Server CE 버전은 Managed DLL과 Unmanaged DLL로 구성되어 있습니다. 아쉬운 점은 현재 Unmanaged DLL들이 모두 32비트 용만 릴리즈된 상태입니다. 이 때문에 Cassini 응용 프로그램을 32비트로 구동해야 합니다. 프로젝트 속성창에서 바꿔주면 되겠지요. ^^<br /> <br /> [그림 1: 32비트 출력 설정]<br /> <img alt='petshop_plus_cassini_1.png' src='/SysWebRes/bbs/petshop_plus_cassini_1.png' /><br /> <br /> <div style='font-family: 맑은 고딕, Consolas; font-size: 12pt; color: #2211AA; text-align: left; font-weight: bold'>3. SQL Server CE DLL 배치</div><br /> <br /> Pet Shop 실행을 위한 SQL Server CE로부터 필요한 최소한의 DLL은 다음과 같습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; width: 800px; background-color: #fbedbb; overflow-x: scroll; font-family: Consolas, Verdana;' > sqlceme35.dll (Unmanaged) sqlceqp35.dll (Unmanaged) sqlcese35.dll (Unmanaged) System.Data.SqlServerCe.dll (Managed) </pre> <br /> 이 중에서 Unmanaged에 속한 DLL들은 Cassini 실행 파일 기준으로 찾기가 가능해야 합니다. 이 때문에 unmanaged dll들은 Cassini 프로젝트에 파일 추가를 한 후 "Copy to Output Directory" 설정을 "Copy if newer"로 해줘야 합니다.<br /> <br /> [그림 2: SQL Server CE DLL 설정]<br /> <img alt='petshop_plus_cassini_2.png' src='/SysWebRes/bbs/petshop_plus_cassini_2.png' /><br /> <br /> 나머지 "System.Data.SqlServerCe.dll"은 ASP.NET에서 로드되어야 하는데, 이미 Pet Shop 프로젝트들에서 참조하고 있으므로 부가 작업은 필요없습니다.<br /> <br /> Pet Shop ASP.NET 프로젝트는 빌드 후 배포를 하고, Cassini도 빌드를 한 후 최종적으로, 다음과 같이 폴더 구성이 되어야 합니다.<br /> <br /> [그림 3: Cassini + Pet Shop 4.0 폴더 구조]<br /> <img alt='petshop_plus_cassini_3.png' src='/SysWebRes/bbs/petshop_plus_cassini_3.png' /><br /> <br /> <hr style='width: 50%' /><br /> <br /> <a target='_tab' href='http://www.sysnet.pe.kr/bbs/DownloadAttachment.aspx?wid=816&boardid=331301885'>첨부 파일은 그렇게 변경한 솔루션과 최종 결과물</a>을 포함하고 있습니다. 다운로드 후 압축을 해제하고, "/Bin" 폴더의 "Cassini-v35.exe"를 실행합니다.<br /> <br /> [그림 4: Cassini 실행화면]<br /> <img alt='petshop_plus_cassini_4.png' src='/SysWebRes/bbs/petshop_plus_cassini_4.png' /><br /> <br /> 응용 프로그램에서 제공되는 링크를 클릭하면, 아래와 같이 웹 브라우저가 뜨고 정상적으로 Pet Shop 4.0이 구동되는 것을 볼 수 있습니다. (즉, IIS 도 필요없고 SQL Server Express도 필요없이 곧바로 ASP.NET 응용 프로그램이 실행됩니다.)<br /> <br /> [그림 5: Cassini 위에서 실행된 Pet Shop 웹 사이트를 방문]<br /> <img alt='petshop_plus_cassini_5.png' src='/SysWebRes/bbs/petshop_plus_cassini_5.png' /><br /> <br /> <br /><br /><hr /><span style='color: Maroon'>[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
3712
(왼쪽의 숫자를 입력해야 합니다.)