다음을 통해 공유


사용자 지정 웹 서비스 클라이언트 프록시 클래스 고려 사항

업데이트: 2007년 11월

분산 시스템 디자이너에서 응용 프로그램의 소비자 끝점은 공급자 끝점에 대해 구성할 수 있는 연결 지점을 나타냅니다. 이러한 응용 프로그램으로 구성된 시스템 정의의 인스턴스를 배포하면 해당 응용 프로그램의 소비자 끝점이 연결된 공급자 끝점의 주소로 구성됩니다. 자세한 내용은 응용 프로그램의 끝점 개요응용 프로그램 시스템 개요를 참조하십시오.

웹 서비스 소비자 끝점의 경우 이렇게 하려면 런타임에 적절한 응용 프로그램 구성 파일 항목에서 연결된 웹 서비스 공급자 끝점의 URL을 검색하는 "동적" 웹 서비스 클라이언트 프록시 클래스를 사용해야 합니다.

참고:

구현을 지원하는 응용 프로그램의 경우에는 응용 프로그램 다이어그램에서 응용 프로그램을 구현할 때 Visual Studio에서 해당 응용 프로그램에 대한 구성 파일을 생성합니다. 구성 파일은 솔루션 탐색기에서 응용 프로그램 프로젝트의 일부로 포함됩니다. 자세한 내용은 방법: 응용 프로그램 다이어그램에서 응용 프로그램 구현을 참조하십시오.

기본적으로 응용 프로그램 디자이너에서는 ASP.NET, Windows 및 Office 응용 프로그램의 이러한 웹 서비스 소비자 끝점에 대한 웹 참조를 생성합니다. 그런 다음 이 웹 참조에서 해당 구성 파일 항목을 사용하여 적절한 동적 프록시 클래스를 만듭니다.

참고:

응용 프로그램 또는 참조되는 클래스 라이브러리에서 정적 웹 참조를 사용하는 경우, 이 웹 참조는 제대로 작동되는 경우에도 응용 프로그램 디자이너에서 검색되지 않으며 웹 서비스 소비자 끝점으로 시각화되지 않습니다. 배포할 때 웹 서비스 URL을 변경할 계획이 없더라도 항상 동적 웹 참조를 사용하는 것이 좋습니다.

다음 단원에는 동적 프록시 클래스 대신 사용자 지정 웹 서비스 클라이언트 프록시 클래스를 사용하는 방법에 대한 자세한 내용이 들어 있습니다.

  • 사용자 지정 웹 서비스 클라이언트 프록시 클래스를 웹 서비스 소비자 끝점으로 표시

  • Windows 및 Office 응용 프로그램에 사용되는 사용자 지정 웹 서비스 프록시 클라이언트 클래스의 구성 파일 항목

  • ASP.NET 응용 프로그램에 사용되는 사용자 지정 웹 서비스 프록시 클래스의 구성 파일 항목

  • Visual Studio .NET 2003에서 웹 참조 및 사용자 지정 프록시 클래스 마이그레이션

사용자 지정 웹 서비스 클라이언트 프록시 클래스를 웹 서비스 소비자 끝점으로 표시

응용 프로그램 디자이너에서는 웹 참조에 의해 구현되는 웹 서비스 소비자 끝점을 디자인할 수 있도록 지원합니다. 그러나 소비자 응용 프로그램의 구성 파일인 App.config 또는 Web.config 파일에 적절한 항목이 있으면 수동으로 만든 사용자 지정 프록시 클래스를 웹 서비스 소비자 끝점으로 리버스 엔지니어링하거나 시각화할 수도 있습니다.

웹 서비스 소비자 끝점은 응용 프로그램 디자이너에서 사용자 지정 프록시 클래스에 대한 웹 서비스 URL 설정을 나타내는 것으로 식별하는 각 구성 파일 항목의 소비자 응용 프로그램에 표시됩니다. 또한 구성 파일 항목의 웹 서비스 URL이 응용 프로그램 다이어그램에서 기존 웹 서비스 공급자 끝점의 URL과 일치하는 경우, 소비자 끝점과 웹 서비스 공급자 끝점 간 연결이 표시됩니다. 일치하는 웹 서비스 공급자 끝점은 없지만 URL에 "?wsdl" 또는 "?disco"를 추가하여 웹 서비스에 대해 WSDL 파일을 찾는 데 URL을 사용할 수 있으면 외부 웹 서비스가 응용 프로그램 다이어그램에 추가되고 웹 서비스 소비자 끝점에 연결됩니다. URL을 사용하여 WSDL 파일을 찾을 수 없으면 웹 서비스 소비자 끝점은 연결되지 않은 상태로 유지됩니다.

웹 서비스 URL 설정을 나타내는 구성 파일 항목과 응용 프로그램 디자이너에서 해당 항목을 식별하는 방법은 ASP.NET 응용 프로그램과 Windows 또는 Office 응용 프로그램 간에 다릅니다. 다음 지침에서는 사용자 지정 프록시 클래스가 각 응용 프로그램 종류의 웹 서비스 소비자 끝점으로 올바르게 표시되도록 하는 방법에 대해 설명합니다.

참고:

이 지침을 따르지 않아도 런타임에 제대로 작동하는 사용자 지정 프록시 클래스가 만들어질 수 있지만, 이러한 클래스는 웹 서비스 소비자 끝점으로 표시되지 않고, 응용 프로그램 다이어그램에 연결되지 않고, 배포를 위해 유효성이 검사되지 않고, 배포 보고서에 끝점으로 보고되지 않으며, 사용 가능한 배포 도구를 사용하여 끝점 구성에 사용할 수 없게 됩니다.

Windows 및 Office 응용 프로그램에 사용되는 사용자 지정 웹 서비스 프록시 클라이언트 클래스의 구성 파일 항목

Windows 및 Office 응용 프로그램에 사용되는 사용자 지정 프록시 클래스의 경우, 웹 서비스 URL 설정이 소비자 응용 프로그램의 App.config 구성 파일에 있는 applicationSettings 항목에 표시되어야 합니다. 설정 및 제약 조건 편집기를 사용하여 이 설정을 보거나 편집할 수 없으므로 Windows 또는 Office 응용 프로그램 프로젝트를 마우스 오른쪽 단추로 클릭하고 프로젝트 속성을 확인하여 액세스되는 설정 창을 통해 이 설정을 만들거나 편집해야 합니다. 또한 이 설정을 WebServiceURL 또는 String 형식으로 지정해야 합니다. 자세한 내용은 응용 프로그램 설정 관리를 참조하십시오.

참고:

WebServiceURL 형식 지정 내용은 App.config 구성 파일에 표시되지 않지만 일반적으로 숨겨진 관련 설정 파일에 저장됩니다. App.config 구성 파일에 설정을 직접 추가할 경우, WebServiceURL 또는 String 형식 지정 내용을 설정 창에 설정으로 추가해야 합니다.

설정 창에서 설정을 WebServiceURL 형식으로 지정한 경우 설정에 대해 응용 프로그램 또는 사용자 범위를 선택할 수 있습니다. 범위를 변경하면 구성 파일의 applicationSettings 또는 userSettings 섹션으로 항목이 이동합니다. 그러나 설정을 String 형식으로 지정하도록 선택하는 경우에는 응용 프로그램을 범위로 선택해야 합니다.

팁:

App.config 파일에서 웹 서비스 URL 설정을 지정할 때 웹 서비스 설명 또는 WSDL 파일의 위치가 아닌 웹 서비스의 위치를 지정해야 합니다. .asmx 파일 기반 웹 서비스의 경우, 웹 서비스 설명의 위치는 주로 WSDL 위치와 동일합니다. 따라서 .asmx 파일 기반 웹 서비스의 경우 응용 프로그램 디자이너에서는 웹 서비스 위치가 WSDL 파일 위치와 동일한 것으로 간주합니다. 해당 위치에 WSDL 파일이 있으면 외부 웹 서비스는 응용 프로그램 다이어그램으로 리버스 엔지니어링되고 리버스 엔지니어링된 웹 서비스 소비자 끝점에 연결됩니다. 해당 위치에 올바른 WSDL 파일이 없으면 웹 서비스 소비자 끝점만 리버스 엔지니어링됩니다.

다음 예제에서는 설정이 String 형식으로 지정되었을 때 applicationSettings 항목이 App.config 구성 파일에 표시되는 방법을 보여 줍니다.

<applicationSettings>
   <WindowsApplicationName.MySettings>
      <setting name="WindowsApplicationName_Namespace_WebServiceProxyClassName" serializeAs="String"><value>http://WebServiceURL.asmx</value></setting>
   </WindowsApplicationName.MySettings>
</applicationSettings>

형식이 WebServiceURL인 항목의 경우 설정 이름은 프록시 클래스 이름이 아니어도 됩니다. 항목과 관련된 사용자 지정 프록시 클래스가 없어도, 이런 방식으로 정의되고 설정 창에서 WebServiceURL 또는 String 형식으로 지정된 구성 파일 항목만 있으면 Windows 또는 Office 응용 프로그램의 웹 서비스 소비자 끝점을 만들 수 있습니다. 해당 끝점을 삭제하면 항목이 삭제되지만 관련된 사용자 지정 프록시 클래스는 삭제되지 않습니다.

ASP.NET 응용 프로그램에 사용되는 사용자 지정 웹 서비스 프록시 클래스의 구성 파일 항목

ASP.NET에서는 구성 파일 항목이 웹 서비스 URL을 나타내도록 지정하는 방법을 제공하지 않습니다. 따라서 응용 프로그램 디자이너에서는 구성 파일 항목의 이름이 프록시 클래스 이름과 일치되도록 시도합니다. 다음 지침은 ASP.NET 응용 프로그램에 사용되는 사용자 지정 프록시 클래스의 구성 파일 항목에 적용됩니다.

  • 이름이 일치하는 프록시 클래스가 소비자 응용 프로그램 프로젝트 또는 참조되는 프로젝트나 어셈블리에 있는 경우에만 웹 서비스 소비자 끝점이 표시됩니다.

  • 소비자 프록시 클래스가 ASP.NET 응용 프로그램에만 사용되는 경우에는 ASP.NET 응용 프로그램에 있는 Web.config 구성 파일의 appSettings 항목에 웹 서비스 URL이 표시됩니다. 구성 파일 항목의 이름은 정규화된 프록시 클래스 이름이어야 합니다. 설정 및 제약 조건 편집기를 사용하여 Web.config 파일의 appSettings 항목을 편집할 수 있습니다. 자세한 내용은 설정 및 제약 조건 편집기설정 적용을 참조하십시오.

  • 소비자 프록시 클래스가 ASP.NET 응용 프로그램뿐만 아니라 Windows 및 Office 응용 프로그램에 사용되는 경우에는 ASP.NET 응용 프로그램에 있는 Web.config 구성 파일의 applicationSettings 항목에 웹 서비스 URL이 표시됩니다. 구성 파일 항목의 이름은 프로젝트 이름이 접두사로 사용된 정규화된 프록시 클래스 이름이어야 하며, 이 이름은 자동으로 생성되는 웹 참조가 사용하는 기본 형식입니다. 설정 및 제약 조건 편집기를 사용하여 Web.config 파일의 applicationSettings 항목을 편집할 수 있습니다. applicationSettings 섹션에서는 설정 이름에 점(.) 구문을 지원하지 않으며 대신 밑줄(_) 문자를 사용합니다.

다음 예제에서는 appSettings 항목이 Web.config 파일에 표시되는 방법을 보여 줍니다.

<appSettings>
   <add key="Namespace.WebServiceProxyClassName" value="https://localhost/WebServiceApplicationName/WebServiceName.asmx"/>
</appSettings>

다음 예제에서는 applicationSettings 항목이 Web.config 파일에 표시되는 방법을 보여 주며, 이 항목은 Windows 또는 Office 응용 프로그램의 App.config 파일에 사용되는 항목과 동일합니다.

<applicationSettings>
   <WindowsApplicationName.MySettings>
      <setting name="WindowsApplicationName_Namespace_WebServiceProxyClassName" serializeAs="String"><value>http://WebServiceURL.asmx</value></setting>
   </WindowsApplicationName.MySettings>
</applicationSettings>

사용자 지정 프록시 클래스를 나타내는 웹 서비스 소비자 끝점을 삭제하면 관련된 구성 파일 항목이 제거되지만 관련된 프록시 클래스는 삭제되지 않습니다. 사용자 지정 프록시 클래스를 삭제하거나 이름을 바꾸면 관련된 구성 파일 항목은 제거되지 않지만, 이름이 일치하는 프록시 클래스가 없기 때문에 해당 소비자 끝점이 제거됩니다. 이름이 일치하는 프록시 클래스를 다시 추가하거나 기존 프록시 클래스 이름을 바꿔 구성 파일 항목과 일치시키면 끝점이 다시 표시됩니다.

Visual Studio .NET 2003에서 웹 참조 및 사용자 지정 웹 서비스 클라이언트 프록시 클래스 마이그레이션

Visual Studio .NET 2003을 사용하여 Windows 또는 Office 프로젝트에 추가된 웹 참조의 관련 구성 파일 항목은 applicationSettings 섹션 대신 appSettings 섹션에 저장됩니다. 변환 마법사를 사용하여 Visual Studio .NET 2003 Windows 또는 Office 프로젝트를 업그레이드할 때 웹 참조 및 사용자 지정 프록시 클래스는 appSettings 섹션에서 applicationSettings 섹션으로 자동 마이그레이션되지 않습니다. 변환 마법사에 대한 자세한 내용은 Visual Studio 변환 마법사를 참조하십시오.

그러나 해당 웹 서비스가 변경되거나 웹 참조를 수동으로 새로 고치는 경우와 같이 프록시 클래스가 생성될 때 웹 참조는 자동으로 마이그레이션됩니다. 새 설정은 각 웹 참조의 applicationSettings 섹션에 표시되고 업데이트된 프록시 클래스에서 사용됩니다. applicationSettings 섹션이 업데이트되면 해당 웹 서비스 소비자 끝점 및 연결이 응용 프로그램 다이어그램에 표시됩니다. 자세한 내용은 방법: 응용 프로그램 다이어그램에서 웹 서비스에 대한 웹 참조 새로 고치기를 참조하십시오.

사용자 지정 프록시 클래스의 웹 서비스 소비자 끝점을 표시하려면 이러한 클래스를 수동으로 마이그레이션해야 합니다. 이 작업은 applicationSettings 섹션을 사용하도록 프록시 클래스를 업데이트하고 Windows 또는 Office 응용 프로그램 프로젝트 속성을 통해 사용 가능한 설정 창을 사용하여 적절한 설정을 추가하여 수행할 수 있습니다. 자세한 내용은 응용 프로그램 설정 관리를 참조하십시오.

참고 항목

개념

응용 프로그램의 끝점 개요

응용 프로그램 다이어그램의 ASP.NET 응용 프로그램 개요

참조

클래스 라이브러리의 사용자 지정 웹 서비스 클라이언트 프록시 클래스 및 웹 참조

응용 프로그램 정의를 위한 응용 프로그램 종류 및 프로토타입

기타 리소스

응용 프로그램 다이어그램에서 응용 프로그램 정의