GSI

웹서버별 마임 추가 방법

Http 프로토콜을 이용한 파일 다운로드시 해당 파일의 사이즈를 아래의
코드를 통해서 읽어 오게 됩니다.

HttpQueryInfo (g_hURL, HTTP_QUERY_CONTENT_LENGTH, szLengthBuf, &dwLengthBufQuery, NULL);

하지만 이때 원하는 용량이 넘어 오지 않고, 1430 인가(?) 하는 특정 바이트 수만
넘어 올때가 있습니다.

물론 이때 오류 처리 하는 코드가 따로 있는걸로 알고 있구요.
그 오류는 404 오류 즉, 해당 파일을 찾을 수 없다는 걸로 나오게 됩니다.

문제의 해답은..
이미 알려져 있고 규정되어 있는 확장자만 다운로드가 가능하다는 건데요.
IIS에서 확장해서 별도의 확장자를 추가할 수 있습니다.
  HTTP 헤더 > MIME 형식 > 원하는 확장자 추가...

자세한 방법은 아래의 블로그 내용을 참조 하시면 됩니다.
주소 : http://cafe.naver.com/okwinc.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=22
Posted by gsi
:

1. HelloWorld라는걸 노출해줘야 다른 작업이 있는건지 궁금합니다.

           -> 메소드에 [WebMethod] 어트리뷰트를 설정해주는걸로 웹서비스 메소드로의 노출 작업은 완료된상태입니다.

 

2. 웹 서비스를 준비 하는 저의 입장에서 저희 서비스에만 사용하는 형태로 할건데요.

   고려사항이 어떤게 있을지 궁금합니다. 아울러 조금이라도 조언을 해주셨으면 좋겠습니다.

           -> 저희 서비스만 사용하는 형태로고 함은 이 public하게 노출된 웹서비스를 특정 시스템에서는 사용하게 하고프신 것 같은데요.

           웹서비스의 보안은 크게 3단계로 구분할 수 있는데요..

          

첫번째, IIS영역에서 요청(접근)을 제한하는 방법입니다. 웹서비스를 서비스하고 있는 웹 사이트의 IP 접근 제한을 하시면 되구요..

           접근하려는 시스템의 IP만을 접근 허용으로 해주시면 될 듯 합니다.

          

           두번째, 접근 하려는 웹메소드에서 호출하는 사용자를 식별하는 방법이 있습니다. 자세히 설명하기는 힘들지만 메소드를 호출할때

SoapHeader에 사용자 인증 정보를 담아 호출하여 메소드 실행직전에 인증정보가 유효한지를 확인합니다.

 

세번째, 네트워크를 통해 전송되는 웹서비스 결과를 모두 암호화 하여 데이
터에 대한 보안을 설정하실 수 있습니다.

 

각 자세한 방법은 인터넷이나 책을 통해 찾아보시면 될 것 같습니다.

 

3. 인터넷 정보 서비스의 ASP.NET 1.0.**, 2.0.*** 두개가 나오게 되는데요. 웹 서비스를 net 2.0으로 제작할 때

   ASP.NET 2.0.*** 을 사용하는데요 이것으로 해야 되는건지도 궁금합니다.

-> 네 닷넷 프레임워크의 1.1 2.0은 전혀 다른 런타임입니다. 하여 반드시 버전을 정확히 선택해줘야지만 올바른 실행이 가능합니다.


>>>

결과적으로 http:post 형태의 프로토콜을 지원 하기 위해서는 web.config 에 프로토콜을 추가해 주어야 합니다. 기본이 soap 형태만 지원하기 때문에...

<protocols>
   <add name="httpPost"/>
   <add name="httpGet"/>
   <remove name="httpPost/>
   <remove name="httpGet/>
</protocols>

Posted by gsi
:

1. C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 의 등록정보의 보안 탭에 ASP.NET 계정을 추가한다. 쓰기 속성을 부여 한다.
2. C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 에서 아래와 같이 적용합니다.
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -r
ASP.NET(2.0.50727)을 설치하고 모든 스크립트맵의 ASP.NET DLL을 현재 버전으로 바꿉
니다.
......................................
ASP.NET(2.0.50727)을 설치하고 모든 스크립트맵의 ASP.NET DLL을 현재 버전으로 바꿨
습니다.

이렇게 하니까 되었네요.
혹시 몰라서 .net 3.0도 지웠는데.. 움.. 이건 상관이 없는듯 보이는데요.
Posted by gsi
:

OVERLAYING HTML AND SILVERLIGHT CONTENT

실버라이트가 1.0이 나온 지금 시점에서
많은 컨트롤들이 붙어 주지 않지만 실버라이트 만의 UX환경을 조금은 맛볼수 있는거 같네요.
벡터 드로잉 방식의 웹 페이지를 이미지가 아닌 스크립트로 표현할 수 있으니까요.

11월 7일 세미나를 들으면서 알게된 예제를 구현할려고 무던히 노력했습니다.
다행이 도와 주신 천성구 님께 정말 감사하구요 ^^.

기본적인 구현 방법은
실버라이트로 화면 UI 및 레이아웃을 구성한다.
그 위에 ASP.NET AJAX를 통해서 컨트롤 들을 배치한다.
웹 서비스를 통해서 데이터를 받아서 처리 한다.


이게 주된 데모였구요.
처음 부터 막혔네요 ^^.

실버라이트 화면 위에 레이어로 구성해도 asp.net 컨트롤들이 올라가질 않았습니다. ^^
하지만 이유는 간단했습니다.
Windowless="true" 이 코드 하나.

Blend를 통해서 실버라이트 예제들을 보면 HTML 구조를 취하고 있습니다.
하지만 그쪽 예제는 많이 있고 아래 동영상을 한번 보시면 알 수 있습니다.
http://silverlight.net/learn/learnvideo.aspx?video=120 ( OVERLAYING HTML AND SILVERLIGHT CONTENT ) 을 찾아 보시면 됩니다.

하지만 내가 궁금해 한것은 바로. aspx 에서 안되는 거였죠 ^^.
aspx 코드에서는 xaml 컨테이너가 하나 있어서 그 코드를 통해서
아래와 같이 심플하게 추가할 수가 있습니다.

<asp:Xaml ID="Xaml1" runat="server" Height="480" Width="640" XamlUrl="~/Page.xaml">
</asp:Xaml>
이 코드가 이렇게 바껴야 합니다. ^^
<asp:Xaml ID="Xaml1" runat="server" Height="480" Width="640" XamlUrl="~/Page.xaml" Windowless="true">
</asp:Xaml>


이게 되었으니 웹 서버도 테스트 하고 asp.net와 실버라이트 간의 데이터 공유 부분도
공부를 해서 올리도록 하겠습니다.

Posted by gsi
:

<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Developer Studio">
<META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE>Netshow 3.0 Beta 1 - Close Captioning Sample</TITLE>
</HEAD>
<BODY>
    <CENTER>
        This is a sample of Close Captioning using Netshow 3.0<BR>
        and SAMI (Synchronized Accessible Media Interchange) files.<BR><BR><BR>

        <!-- BEGIN GENERIC ALL BROWSER FRIENDLY HTML FOR NETSHOW V3 -->
        <OBJECT ID="MediaPlayer1" width=320 height=240 classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95"
                codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701"
                standby="Loading Microsoft Media Player components..." type="application/x-oleobject">
                <PARAM name="FileName" value="kstr100.asf">
                <PARAM name="SAMIFileName" value="ccsample.smi">
                <PARAM name="ShowCaptioning" value="1">
                <PARAM name="ShowControls" value="1">
                <EMBED type="application/x-mplayer2"
                       pluginspage="http://www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer/"
                       filename="kstr100.asf"
                       name="MediaPlayer1"
                       width=320
                       height=240
                       SAMIFileName="ccsample.smi"
                       ShowCaptioning=1
                       ShowControls=1
                ></EMBED>
        </OBJECT>
        <BR>
        <A href="kstr100.asf">Start the NetShow presentation in the stand-alone player.</A>
        <!-- END GENERIC ALL BROWSER FRIENDLY HTML FOR NETSHOW V3 RTM -->
    </CENTER>
</BODY>
</HTML>

Posted by gsi
:

Asp.NET 에 있는 GridView는 기본적인 기능만으로도 활용도가 정말 좋은거 같다.
가장 좋은건 페이지 기능이 제일 맘에 드는거 같다.

업데이트, 삭제 등도 바로 지원하면서
디테일 뷰와 연동하면 기본적인 DB 제어가 가능해 진다.

하지만 기본적인 레이아웃으로만 사용해서 부족한 부분에서는 아래와 같이
TemplateField를 사용하게 되면 더 다양한 뷰를 생성할 수 있다.

아래는 GridView의 한 부분이다.

    <asp:GridView ID="GridView1" runat="server" AllowPaging="True"
        AutoGenerateColumns="False" CssClass="gridview"
        DataSourceID="SqlDataSource1" PageSize="6">
        <Columns>
            <asp:TemplateField HeaderText="선택">
                <ItemTemplate>
                    <asp:CheckBox ID="CheckBox1" runat="server" Text='<%# Eval("Item_name") %>' />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:templatefield HeaderText="아이콘">
                <itemtemplate>
                    <asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("view_img", "~\\Images\\object_icon_obj\\wi_{0}.png") %>' />                   
                    <!--<asp:Label ID="item_name1" runat=server Text='<%# Eval("Item_name") %>'  />-->
                    <asp:Label ID="uid1" runat=server Text='<%# Eval("uid") %>'  />
                </itemtemplate>
            </asp:templatefield>
        </Columns>
    </asp:GridView>

<asp:templatefield> 이걸로 묶어 주고
내부에 label, image 등등을 넣어서 레이아웃을 구성해 준다.

image 같은 경우에 url을 구성할 경우 format 정보가 필요할때가 있다.
Eval()함수를 사용해서 할때 2번째 인자 값을 사용하면 확장을 할 수가 있다.
Posted by gsi
:

본 자료는 해당 책의 부록 내용을 따라 하면서 작성해 본것입니다.
자세한 DB 자료 및 기타 다른 내용은 따로 요청 하시거나..
관련책 홈페이지를 통해서 찾으실 수 있습니다.

관련책 이름 : 비주얼 웹 디벨로퍼 2005 익스프레스로 배우는 ASP.NET 2.0

Posted by gsi
:

ASP.NET 2.0 개발을 처음 하다 보면 가끔 나오는 오류인듯..
IIS 의 asp 버젼을 1.0 으로 초기 설정 되어 있다면 아래의 PostBack 코딩 부분에서
오류가 나게 되는거 같습니다.

 [오류내용]

'/aspx' 응용 프로그램에 서버 오류가 있습니다.

파서 오류

설명: 이 요청을 제공하는 데 필요한 리소스를 구문 분석하는 동안 오류가 발생했습니다. 아래의 구문 분석 오류 정보를 확인한 다음 소스 파일을 적절하게 수정하십시오.

파서 오류 메시지: 'PostBack' 형식을 로드할 수 없습니다.

소스 오류:

줄 1:  <%@ Page Language="C#" AutoEventWireup="true" CodeFile="PostBack.aspx.cs" Inherits="PostBack" %>
줄 2:  
줄 3:  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

소스 파일: C:\Inetpub\wwwroot\Project\ch05\ObjectEx\PostBack.aspx    줄: 1


버전 정보: Microsoft .NET Framework 버전:1.0.3705.0; ASP.NET 버전:1.0.3705.0

[해결방법]
IIS의 해당 가상 디렉토리의 등록 정보에 들어가서 "ASP.NET" 탭을 선택합니다.
ASP.NET 버전 : 2.0.***** 를 선택 합니다.

이후에 실행하면 에러가 나지 않네요.
버젼 차이만 있는건지 혹시 아시는분 답변 주세요 ^^
Posted by gsi
: