방법: 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을 구성하려면
웹 사이트의 Web.config 파일을 엽니다.
참고:
Microsoft Visual Studio 2005에서 웹 서비스를 만드는 경우 Web.config 파일에는 자식 요소가 주석 처리된 system.web.extensions 섹션이 포함됩니다.
webServices 요소 내에 jsonSerialization 요소를 추가합니다.
이 요소를 사용하면 사용자 지정 변환기를 지정하고 기본 설정을 재정의할 수 있습니다.
다음과 같은 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>
사용자 지정 변환기를 사용하려면 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 응용 프로그램 서비스에 대한 자세한 내용은 다음 항목을 참조하십시오.
인증 서비스를 구성하려면
웹 사이트의 Web.config 파일을 엽니다.
authentication 요소에서 인증 서비스를 활성화합니다.
다음 예제에서는 폼 인증을 사용하도록 구성된 authentication 요소를 보여 줍니다. 보호된 리소스에 대한 인증되지 않은 사용자의 액세스 시도는 웹 사이트의 루트에 있는 Login.aspx 페이지로 리디렉션됩니다.
<system.web> <authentication mode="Forms"> <forms cookieless="UseCookies" loginUrl="~/login.aspx"/> </authentication> <system.web>
자세한 내용은 ASP.NET AJAX에서 폼 인증 사용을 참조하십시오.
system.web.extensions 요소에서 인증 서비스를 활성화합니다.
다음 예제에서는 인증 서비스를 활성화하는 방법을 보여 줍니다.
<system.web.extensions> <scripting> <webServices> <authenticationService enabled="true" /> </webServices> </scripting> </system.web.extensions>
역할 서비스를 구성하려면
웹 사이트의 Web.config 파일을 엽니다.
system.web.extensions 요소에서 역할 서비스를 활성화합니다.
다음 예제에서는 역할 서비스를 활성화하는 방법을 보여 줍니다.
<system.web.extensions> <scripting> <webServices> <rolesService enabled="true" /> </webServices> </scripting> </system.web.extensions>
프로필 서비스를 구성하려면
웹 사이트의 Web.config 파일을 엽니다.
아직 정의되어 있지 않으면 응용 프로그램에서 노출하려는 프로필 속성을 정의합니다.
다음 예제와 같은 구문을 사용하여 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 프로필 속성 개요를 참조하십시오.
system.web.extensions 요소에서 프로필 서비스를 활성화합니다.
다음 예제에서는 프로필 서비스를 활성화하는 방법을 보여 줍니다.
<system.web.extensions> <scripting> <webServices> < profileService enabled="true" /> </webServices> </scripting> </system.web.extensions>
클라이언트 응용 프로그램에서 사용할 수 있게 하려는 각 프로필 속성에 대해 profileService 요소의 readAccessProperties 특성에 속성 이름을 추가합니다.
클라이언트 스크립트에서 업데이트할 수 있는 각 서버 프로필 속성에 대해 writeAccessProperties 특성에 속성 이름을 추가합니다.
다음 예제에서는 개별 속성을 노출하고 클라이언트 응용 프로그램에서 해당 속성을 읽고 쓸 수 있는지 여부를 설정하는 방법을 보여 줍니다.
<profileService enabled="true" readAccessProperties="Backgroundcolor,Foregroundcolor" writeAccessProperties=" Backgroundcolor,Foregroundcolor"/>
참고 항목
작업
개념
참조
system.web.extensions 요소(ASP.NET 설정 스키마)