다음을 통해 공유


방법: ASP.NET AJAX에서 ASP.NET 서비스 구성

업데이트: 2007년 11월

이 항목에서는 ASP.NET AJAX 사용 클라리언트 응용 프로그램에서 ASP.NET 웹 서비스(.asmx 파일)를 호출할 수 있도록 하는 구성을 설정하는 방법에 대해 설명합니다. 이 항목에 설명된 작업은 다음과 같습니다.

  • 웹 서비스를 클라이언트 스크립트에서 호출할 수 있도록 구성

  • JSON serialization 구성

  • 인증 서비스 구성

  • 역할 서비스 구성

  • 프로필 서비스 구성

구성 설정은 모두 system.web.extension 구성 그룹에서 수행합니다. 자세한 내용은 system.web.extensions 요소(ASP.NET 설정 스키마)를 참조하십시오.

웹 서비스를 클라이언트 스크립트에서 호출할 수 있도록 구성

다음 절차에서는 ASP.NET 웹 서비스를 클라이언트 스크립트에서 호출할 수 있도록 구성하는 방법에 대해 설명합니다. 자세한 내용은 웹 서비스를 클라이언트 스크립트로 노출을 참조하십시오.

ASP.NET AJAX 사용 클라이언트(스크립트)에서 발생하지 않는 웹 서비스 호출의 경우 ScriptHandlerFactory 처리기 클래스에서 해당 호출을 JSON 대신에 SOAP 형식을 사용하는 기본 처리기에 위임합니다. 이는 내부적으로 수행되므로 다른 작업을 수행할 필요가 없습니다. 또한 웹 서비스에 대해 SOAP 프로토콜을 사용하지 않도록 설정할 수 있습니다.

웹 서비스에 대해 SOAP 프로토콜을 사용하지 않도록 설정하려면

  • 다음 예제에서처럼 웹 사이트의 Web.config 파일에서 웹 서비스에 대한 모든 프로토콜을 지웁니다.

    <system.web>
      <webServices>
        <protocols>
          <clear/>
        </protocols>
      </webServices>
    </system.web>
    

웹 서비스를 클라이언트 스크립트에서 호출할 수 있도록 구성하려면

  • 웹 사이트의 Web.config 파일에서 ScriptHandlerFactory HTTP 처리기를 등록합니다.

    이 처리기에서 스크립트에서 웹 서비스로의 호출을 처리합니다.

    참고:

    이러한 구성 설정은 Microsoft Visual Studio 2005에서 만든 모든 새 AJAX 사용 웹 사이트를 위한 Web.config 파일 템플릿의 일부입니다.

    다음 예제에서는 처리기를 등록하기 위한 Web.config 요소를 보여 줍니다.

    <system.web>
      <httpHandlers>
        <remove verb="*" path="*.asmx"/>
        <add verb="*" path="*.asmx"
          type="System.Web.Script.Services.ScriptHandlerFactory"
           validate="false"/>
      </httpHandlers>
    <system.web>
    

JSON serialization 구성

클라이언트 스크립트가 ASP.NET 웹 서비스를 호출하면 데이터가 JSON 형식으로 교환됩니다. JSON serialization 설정은 jsonSerialization 요소를 통해 구성할 수 있습니다.

JSON serialization을 구성하려면

  1. 웹 사이트의 Web.config 파일을 엽니다.

    참고:

    Microsoft Visual Studio 2005에서 웹 서비스를 만드는 경우 Web.config 파일에는 자식 요소가 주석 처리된 system.web.extensions 섹션이 포함됩니다.

  2. webServices 요소 내에 jsonSerialization 요소를 추가합니다.

    이 요소를 사용하면 사용자 지정 변환기를 지정하고 기본 설정을 재정의할 수 있습니다.

  3. 다음과 같은 serialization 특성을 정의합니다. 모든 특성은 선택적입니다.

    • recursionLimit. 형식을 serialize할 최대 깊이를 지정합니다. 기본 재귀 한계는 100입니다.

    • maxJsonLength. JSON 문자열의 최대 길이를 지정합니다(UTF-8 문자의 최대 수). 기본 길이는 102400입니다.

    다음 예제에서는 jsonSerialization 요소를 구성하는 방법을 보여 줍니다. 이 예제에서는 maxJsonLength를 5000으로 설정합니다.

    <configuration>
      <system.web.extensions>
        <scripting>
          <webServices>
            <jsonSerialization maxJsonLength="5000"/>
          </webServices>
        </scripting>
      </system.web.extensions>
    </configuration>
    
  4. 사용자 지정 변환기를 사용하려면 jsonSerialization 요소 내에 converters 요소를 추가합니다.

    이 요소를 사용하려면 다음과 같은 특성이 필요합니다.

    • name   고유한 식별자입니다.

    • type   변환기의 정규화된 형식 이름입니다.

    다음 예제에서는 사용자 지정 변환기를 구성하는 방법을 보여 줍니다.

    <configuration>
      <system.web.extensions>
        <scripting>
          <webServices>
            <jsonSerialization maxJsonLength="50"/>
              <converters>
                <add name="MyCustomConverter" 
                  type="MyCompany.ConvertersNameSpace.MyTypeConverter"/>
              </converters>
            </jsonSerialization>
          </webServices>
        </scripting>
      </system.web.extensions>
    </configuration>
    

응용 프로그램 서비스를 클라이언트 스크립트에서 호출할 수 있도록 구성

다음 절차에서는 브라우저에서 실행되는 AJAX 사용 웹 응용 프로그램의 스크립트에서 기본 제공 응용 프로그램 서비스를 호출할 수 있도록 구성하는 방법에 대해 설명합니다.

ASP.NET 응용 프로그램 서비스에 대한 자세한 내용은 다음 항목을 참조하십시오.

인증 서비스를 구성하려면

  1. 웹 사이트의 Web.config 파일을 엽니다.

  2. authentication 요소에서 인증 서비스를 활성화합니다.

    다음 예제에서는 폼 인증을 사용하도록 구성된 authentication 요소를 보여 줍니다. 보호된 리소스에 대한 인증되지 않은 사용자의 액세스 시도는 웹 사이트의 루트에 있는 Login.aspx 페이지로 리디렉션됩니다.

    <system.web>
      <authentication mode="Forms">
        <forms cookieless="UseCookies" 
          loginUrl="~/login.aspx"/>
      </authentication>
    <system.web>
    

    자세한 내용은 ASP.NET AJAX에서 폼 인증 사용을 참조하십시오.

  3. system.web.extensions 요소에서 인증 서비스를 활성화합니다.

    다음 예제에서는 인증 서비스를 활성화하는 방법을 보여 줍니다.

    <system.web.extensions>
      <scripting>
        <webServices>
           <authenticationService enabled="true" />
        </webServices>
      </scripting>
    </system.web.extensions>
    

역할 서비스를 구성하려면

  1. 웹 사이트의 Web.config 파일을 엽니다.

  2. system.web.extensions 요소에서 역할 서비스를 활성화합니다.

    다음 예제에서는 역할 서비스를 활성화하는 방법을 보여 줍니다.

    <system.web.extensions>
      <scripting>
        <webServices>
          <rolesService enabled="true" />
        </webServices>
      </scripting>
    </system.web.extensions>
    

프로필 서비스를 구성하려면

  1. 웹 사이트의 Web.config 파일을 엽니다.

  2. 아직 정의되어 있지 않으면 응용 프로그램에서 노출하려는 프로필 속성을 정의합니다.

    다음 예제와 같은 구문을 사용하여 profile 섹션에서 프로필 속성을 정의합니다. 그룹화된 속성의 경우 group 요소를 사용합니다.

    <system.web>
      <profile enabled="true">
        <add name=" Backgroundcolor" type="System.String"
           defaultValue="white" />
        <add name=" Foregroundcolor" type="System.String"
         defaultValue="black" />
        <properties>
          <group name="Address">
           <add name="Street" type="System.String" />
           <add name="City" type="System.String"/>
           <add name="PostalCode" type="System.String" />
          </group>
        </properties>
      </profile>
    </system.web>
    

    자세한 내용은 ASP.NET 프로필 속성 개요를 참조하십시오.

  3. system.web.extensions 요소에서 프로필 서비스를 활성화합니다.

    다음 예제에서는 프로필 서비스를 활성화하는 방법을 보여 줍니다.

    <system.web.extensions>
      <scripting>
        <webServices>
          < profileService enabled="true" />
        </webServices>
      </scripting>
    </system.web.extensions>
    
  4. 클라이언트 응용 프로그램에서 사용할 수 있게 하려는 각 프로필 속성에 대해 profileService 요소의 readAccessProperties 특성에 속성 이름을 추가합니다.

  5. 클라이언트 스크립트에서 업데이트할 수 있는 각 서버 프로필 속성에 대해 writeAccessProperties 특성에 속성 이름을 추가합니다.

    다음 예제에서는 개별 속성을 노출하고 클라이언트 응용 프로그램에서 해당 속성을 읽고 쓸 수 있는지 여부를 설정하는 방법을 보여 줍니다.

    <profileService enabled="true" 
        readAccessProperties="Backgroundcolor,Foregroundcolor" 
        writeAccessProperties=" Backgroundcolor,Foregroundcolor"/>
    

참고 항목

작업

방법: ASP.NET AJAX에서 WCF 서비스 구성

개념

ASP.NET 구성 개요

ASP.NET 구성 파일 계층 구조 및 상속

ASP.NET 구성 파일 편집

참조

system.web.extensions 요소(ASP.NET 설정 스키마)

System.Web.Configuration

기타 리소스

ASP.NET 구성 설정

ASP.NET 구성 API