ASP.NET 2.0에서에서 웹 리소스 작업

기술 자료 번역 기술 자료 번역
기술 자료: 910442 - 이 문서가 적용되는 제품 보기.
ASP.NET 지원 음성 열

ASP.NET 2.0에서에서 웹 리소스 작업

이 열에 맞게를 사용자 지정 하려면 보려는 문제 관심 있는 주제에 대 한 아이디어를 향후 기술 자료 문서 및 Support Voice 칼럼 다루었으면 하는 초대 하려면. 사용자 의견 및 피드백을 사용 하 여 제출할 수 있는 요청 양식입니다. 이 열의 맨 아래에 폼에 대 한 링크가 있습니다.
모두 확대 | 모두 축소

이 페이지에서

소개

안녕하세요! 내 이름이 Praveen Yerneni 이며 저는 기술 리더 작동 ASP.NET 지원 그룹과 microsoft. 이번 달 칼럼에서 하겠습니다. 웹 리소스와의 구현 방법에 설명 하는 응용 프로그램입니다.

광범위 하 게 COM 함께 작동 하는 개발자의 경우 컨트롤을이 문서의 일부 키의 처리에 유용한 컨트롤을 개발 하는 동안 발생할 수 있는 문제. Microsoft에서 이전에 ASP.NET 1.1.html 파일과 같은 정적 파일을 배포 하려면.css 파일, 이미지 파일 및 COM 컨트롤을 사용 하 여 스크립트 파일을 만들 수 있었습니다. 설치 관리자 및 번들 된 COM 함께이 파일을 제어합니다. 하지만 이 작업에서 컨트롤을 배포 하는 동안 많은 문제를 제공 합니다. 에 대 한 예제를 하면 문제가 확인 된 버전 충돌을 했을 수도 있습니다. 이미지와 같은 파일이 있는 동일한 위치에 배포 되거나 손상 것 또는 실패할 컨트롤 일으킬 수 있는 정적 파일 삭제 합니다.

웹 Microsoft ASP.NET 2.0에서 리소스 수 있도록 하 여 이러한 문제를 해결 하면 개발자에서.resources 어셈블리로 이러한 리소스를 포함 합니다. 여기에 액세스 하려면 정적 리소스 방금 메서드는 컨트롤에서 호출할 수 있습니다. 코드입니다.

웹 리소스 작동 방식

웹 리소스 라는 특수 처리기에 사용 어셈블리 리소스를 검색 하 고 제공 하도록 설계 된 WebResource.axd, 웹 브라우저를 합니다. WebResource.axd의 처리기 형식은 AssemblyResourceLoader입니다.

요청이 클라이언트에서 들어오는 WebResource.axd, 웹 리소스 식별자 요청 개체의 쿼리 문자열 메서드에서 처리기를 찾습니다. 웹 리소스 식별자의 값에 따라 해당 처리기는 다음이 리소스가 포함 된 어셈블리를 로드 하려고 합니다. 이 경우 작업이 실패 하 고 어셈블리 특성에 대 한 처리기를 보입니다. 한 어셈블리에서 리소스 스트림을 로드 합니다. 마지막으로, 처리기를 잡아 합니다. 리소스에서 데이터 스트림 및 클라이언트와 함께 보내기는 어셈블리 특성에 지정할 콘텐츠 형식입니다.

URL에 대 한 WebResource.axd는 다음과 같습니다.
WebResource.axd?d=SbXSD3uTnhYsK4gMD8fL84_mHPC5jJ7lfdnr1_WtsftZiUOZ6IXYG8QCXW86UizF0&t=632768953157700078
이 URL의 형식은 WebResource.axd?d=입니다.암호화 식별자& t =타임 스탬프 값입니다.. 는 요청 된 웹 리소스에 대 한 "d"를 의미합니다. 타임 스탬프에 대 한 "t"는의 요청한 어셈블리를 없을 경우 확인할 수 있습니다 리소스에 대 한 변경 내용

코드에 다루기

예제에서는 I에서 사용 되는 COM 컨트롤이 개발 했습니다. 이 새 기능을 보여 주는 ASP.NET 웹 응용 프로그램입니다.

웹 리소스에 대 한 COM 컨트롤

만들기 및 웹 리소스를 포함 하는 대 한 COM를 개발 했습니다. (SimpleControl) 컨트롤입니다. 여기에 다음과 같은 포함 된 리소스 있습니다.
  • 두 개의 파일 smallFail.gif 라는 이미지와 smallSuccess.gif. 이러한 이미지 파일 롤오버 효과를 사용 하면 컨트롤이 고 컨트롤 코드 내에서 사용합니다.
  • HTML 파일 Help.htm 라는입니다. 이 파일이 없습니다. 단지 데모용 이며 많은 텍스트를 포함 합니다.
  • MyScript.js 라는 한 JavaScript 파일. 이 파일 또한 대체 기능을 보여 줍니다. 일부 JavaScript 코드가 들어 동일 내의 다른 포함 된 리소스에 대 한 참조를 가져오려면 어셈블리입니다.
  • MyStyleSheet.css 라는 하나의.css 파일입니다. 이 스타일 다음 시트를 ASP.NET 웹 응용 프로그램에서 직접 사용 합니다.
이 문서에서는 필요한 부분을 내용을 다룹니다. 웹 리소스입니다.
웹 리소스 포함
첫째, 모든 정적 파일이 있는 지 확인 해야 프로젝트에 Microsoft Visual Studio 2005 웹 컨트롤 라이브러리에 추가 포함 된 리소스입니다. 이러한 리소스를 포함 하려면 수행 해야 할 모든 추가 됩니다. 이 파일을 Visual Studio 및 다음 이러한 파일의 속성을 따라서 수정 빌드 작업을 설정 포함 된 리소스.

이 작업을 수행한 후에 확인 해야 있는지를 이러한 리소스 웹 리소스 어셈블리 특성 AssemblyInfo.cs 파일에 아래와 같이 참조 되었습니다.
[assembly: WebResource("SimpleControl.Help.htm", "text/html")]
[assembly: WebResource("SimpleControl.MyStyleSheet.css", "text/css")]
[assembly: WebResource("SimpleControl.smallFail.gif", "image/gif")]
[assembly: WebResource("SimpleControl.smallSuccess.gif", "image/gif")]
[assembly: WebResource("SimpleControl.MyScript.js", "text/javascript", PerformSubstitution = true)]

웹 리소스 어셈블리 특성이 다음과 같은 세 개의 매개 변수를 나타냅니다.
  • 웹 리소스: 어셈블리에 포함 된 리소스의 이름
  • ContentType: 리소스의 MIME 파일 형식
  • PerformSubstitution: 지정 하는 부울 값 여부를 다른 웹 리소스 Url 이 리소스에서 참조 구문 분석 하 고 전체 경로로 대체 합니다. 자원의
웹 리소스를 가져오는 중
웹 리소스를 가져오기 위한 관리 클라이언트 쪽 스크립트에 대 한 일반적으로 사용 되는 ClientScriptManager 클래스의 메서드는 GetWebResourceUrl 메서드를 사용 했습니다. 이 서버측 리소스에 대 한 URL 참조를 반환 어셈블리에 포함 합니다. 다음 두 매개 변수는 GetWebResourceUrl 메서드를 사용할 수 있습니다.
  • 형식: 서버 쪽 리소스 형식
  • 리소스 이름: 서버측 리소스의 이름
이 메서드를 사용 하려면 먼저 하면 ClientScriptManager 클래스의 인스턴스를 만들고 아래와 같이 클래스의 형식 표시 해야 합니다.
ClientScriptManager cs = Page.ClientScript;
            Type rsType = this.GetType();

이 클래스의 인스턴스가 있는 경우 다음이 메서드를 호출 하면 메서드 아래에서 적절 한 매개 변수로 표시 된 하이퍼링크 단추를 만드는 위치 I, 전달 및 NavigateURL 메서드는 포함 된 HTML 리소스를 가리키도록 설정 합니다.
HyperLink hlHelpFile = new HyperLink();
            hlHelpFile.NavigateUrl = cs.GetWebResourceUrl(rsType, "SimpleControl.Help.htm");
            hlHelpFile.Attributes.Add("onmouseover", "ChangeImage('image1','Red')");
            hlHelpFile.Attributes.Add("onmouseout", "RollbackImage('image1','Green')");
            
            this.Controls.Add(hlHelpFile);

            Image imgTest = new Image();
            imgTest.ImageUrl = cs.GetWebResourceUrl(rsType, "SimpleControl.smallFail.gif");
            imgTest.ID = "image1";
            hlHelpFile.Controls.Add(imgTest);

또한 동일한 코드 위에 나열 나 이미지 단추 만들고 ImageUrl 특성 값에서 포함 된.gif 이미지를 다른 것입니다. 리소스입니다.
대체 기능 사용
웹 리소스를 사용 하 여 다른 웹 리소스 특성의 PerformSubstitution 속성은 "웹 리소스 포함" 단원에서 설명한 대로 유용 위에. 이 기능을 사용 하면 실제로 웹 리소스 안에 다른 포함 된를 얻을 수 있습니다. 리소스입니다. 이 속성을 사용 하면 웹 리소스 처리기 포함된 리소스가 구문 분석 하 고 대체 구문 웹 리소스 어셈블리 특성에 실제 자원 처리 하기 전에 페이지입니다.

위 코드에서 하이퍼링크 컨트롤에 ChangeImage라고 하는 클라이언트 쪽 이벤트 있음을 알 수 있습니다. 이 ChangeImage 함수를 스크립트 파일에 있습니다. 다음은 코드입니다. 이 스크립트에 대 한.
function ChangeImage(imgControl,varcolor){
   document.getElementById(imgControl).src = '<%= WebResource("SimpleControl.smallSuccess.gif")%>';
    document.getElementById('Label1').style.color = varcolor;
}

function RollbackImage(imgControl, varcolor){
   document.getElementById(imgControl).src = '<%= WebResource("SimpleControl.smallFail.gif")%>';
   document.getElementById('Label1').style.color = varcolor;
}
MyScript.js 라는 스크립트 파일에 포함 된 리소스 이기도 동일한 COM 컨트롤입니다. 및 I WebResource 메서드는 스크립트에 다른 포함 된 리소스 참조 하려면 사용 중인지 확인 합니다. 파일입니다.

또한 JavaScript 파일에 등록 되어 있는지 확인 합니다. 페이지에서 내가 아래와 같이 ClientScriptManager 클래스의 RegisterClientScriptInclude 메서드를 사용 합니다.
cs.RegisterClientScriptInclude("MyScript", cs.GetWebResourceUrl(rsType, "SimpleControl.MyScript.js"));

ASP.NET에서 컨트롤 사용

COM 컨트롤이 성공적으로 구축한 후에 해야 클라이언트 ASP.NET 프로젝트에이 컨트롤을 사용 합니다. 이 위해서는 하기만 하면 ASP.NET 도구 상자에 컨트롤을 추가 합니다. 다음 컨트롤을 추가할 수 있습니다. 웹 폼 디자이너에서 있습니다.

도구 상자에 컨트롤을 추가 하는 경우는 컨트롤을 등록 하 고 보면 다음과 같은 코드가 추가 됩니다. HTML 구문입니다.
<cc1:MSButton ID="MSButton1" runat="server" strText="Problems?"></cc1:MSButton>
COM 컨트롤 내에서 나 또한 것의 스타일 시트 파일을 포함 하는 ASP.NET 응용 프로그램에서 사용 합니다. 이 스타일 시트에 액세스 하려면 추가 해야 HtmlControlrunat서버 와 같이 속성 집합 및 HTML 페이지에서 아래의 링크입니다.
<link rel="Stylesheet"  id="lnkStyle" runat="server"  />
그런 다음 프로그래밍 방식으로 웹 리소스 어셈블리 특성이 Page_Load 이벤트에서 아래와 같이 가리키도록이 컨트롤의 Href 특성을 설정할 수도 있습니다.
protected void Page_Load(object sender, EventArgs e)
    {
        //Get the name of the Web Resource.
        String rsname = "SimpleControl.MyStyleSheet.css";
        
        //Get the type of the class.
        Type rstype = typeof(SimpleControl.MSButton);

        // Get a ClientScriptManager reference from the Page class.
        ClientScriptManager cs = Page.ClientScript;
        lnkStyle.Href = cs.GetWebResourceUrl(rstype, rsname);
     }

코드를 실행 하면 다음과 같은 컨트롤을 볼 수 있는 다음:
그림 축소그림 확대
 작은 실패
및 마우스 오버에 컨트롤은 다음과 같이 나타납니다.
그림 축소그림 확대
 작은 성공
이 링크를 클릭 하면 사용자의 도움말 페이지에 걸리는입니다 COM 컨트롤 어셈블리 파일에 포함 됩니다.

결론

웹 리소스에 유용한 ASP.NET 2.0의 새로운 기능입니다. 사용 하 여 이 기능을 적절 하 게 사용 하는 경우 유용 합니다. 많은 캐싱 기술이 사용 된 웹 리소스의 성능에 영향을 주지 않도록 합니다. 응용 프로그램을.

ASP.NET 2.0에서는 WebResource.axd에서 내부적으로 사용 됩니다. Microsoft.NET Framework에 포함 된 리소스를 검색 합니다. 예를 들어, 해당 .NET Framework WebResource.axd WebUIValidation.js 스크립트를 사용 하 여 유효성 검사 컨트롤에 대 한 컨트롤 메뉴 에 대 한 Menu.js 스크립트 파일을 검색 하는 데 사용 되는 파일입니다.

참조

자세한 내용은 다음 Microsoft 웹 사이트를 방문 하십시오.
ClientScriptManager.GetWebResourceUrl 메서드
http://msdn2.microsoft.com/en-us/library(d=robot) /system.web.ui.clientscriptmanager.getwebresourceurl.aspx

WebResourceAttribute 클래스
http://msdn2.microsoft.com/en-us/library(d=robot) /system.web.ui.webresourceattribute.aspx

포함된 리소스 및 링크
http://msdn2.microsoft.com/en-us/library/ht9h2dk8.aspx
항상 주제에 원하는 의견을 자유롭게합니다 사용 하는 기술 또는 미래 열 처리는 요청 양식입니다.

속성

기술 자료: 910442 - 마지막 검토: 2013년 4월 30일 화요일 - 수정: 3.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft ASP.NET 2.0
키워드:?
kbhowto kbasp kbmt KB910442 KbMtko
기계 번역된 문서
이 문서는 Microsoft 기계 번역 소프트웨어를 이용하여 번역되었으며 Microsoft Community에 의한 Community Translation Framework(CTF) 기술 혹은 사람이 번역한 내용에 의하여 사후 편집될 수 있습니다. Microsoft는 Knowledge Base에 있는 모든 문서에 다양한 언어로 접근할 수 있도록 하기 위하여 기계 번역, 사람에 의한 번역 및 커뮤니티가 편집한 내용을 모두 제공합니다. 번역된 문서는 어휘, 구문 및/혹은 문법에 오류가 있을 수 있습니다. Microsoft는 번역 오류로 인한 부정확성, 오류 및/또는 손해와 이를 고객이 사용하는 데에 대하여 책임을 지지 않습니다.
이 문서의 영문 버전 보기:910442
더 이상 지원되지 않는 제품의 KB 내용에 대한 고지 사항
이 문서에서는 Microsoft에서 더 이상 지원하지 않는 제품에 대해 설명합니다. 따라서 이 문서는 "있는 그대로" 제공되며 업데이트되지 않습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com