방법: ASP.NET Web Form 클라이언트 만들기
이 항목은 레거시 기술과 관련된 것입니다. 이제 XML Web services와 XML Web services 클라이언트는 다음을 사용하여 만들어야 합니다. Windows Communication Foundation.
Code Example
웹 서비스 클라이언트 역할을 하는 ASP.NET Web Form의 프록시 클래스는 다른 웹 서비스 클라이언트와는 다른 방식으로 참조되고 배포됩니다. 특히 Web Form을 포함하는 웹 응용 프로그램의 \Bin 디렉터리에 배포되는 어셈블리의 공용 클래스를 ASP.NET Web Form에서 만들 수 있습니다. 따라서 웹 서비스 클라이언트 프록시 클래스를 만들어 어셈블리로 컴파일한 다음 \Bin 디렉터리에 저장한 경우 ASP.NET Web Form에서 프록시 클래스의 인스턴스를 만들 수 있습니다.
웹 서비스에 대한 Web Form 클라이언트를 만들려면
웹 서비스에 대한 프록시를 만듭니다.
Wsdl https://www.contoso.com/Counter.asmx?WSDL
Wsdl /language:VB https://www.contoso.com/Counter.asmx?WSDL
자세한 내용은 XML Web services 프록시 만들기를 참조하십시오.
System.Xml.dll 및 System.Web.Services.dll 어셈블리와 1단계에서 만든 프록시를 포함하여 웹 서비스 프록시를 어셈블리로 컴파일합니다.
csc /out:Counter.dll /t:library /r:System.XML.dll /r:System.Web.Services.dll Counter.cs
vbc /out:Counter.dll /t:library /r:System.XML.dll,System.Web.Services.dll Counter.vb
Web Form을 만듭니다.
Web Form을 만드는 방법에 대한 자세한 내용은 ASP.NET Web Forms Pages를 참조하십시오.
클라이언트 코드에서 Web Form 내에 프록시 클래스의 인스턴스를 만듭니다.
Counter myCounter = new Counter();
Dim myCounter As New Counter()
웹 서비스 메서드와 통신하는 프록시 클래스의 메서드를 호출합니다.
UsageCount = myCounter.ServiceUsage();
UsageCount = myCounter.ServiceUsage()
Web Form을 배포합니다. Web Form이 배포되는 웹 응용 프로그램 아래의 \Bin 디렉터리에 웹 서비스 프록시 어셈블리를 배포합니다.
Web Form 배포에 대한 자세한 내용은 Deploying .NET Framework Applications를 참조하십시오.
예제
<%@ Page Language="C#" %>
<asp:Label id="Label1" runat="server" />
<script runat=server language=c#>
void Page_Load(Object o, EventArgs e){
int UsageCount;
// Create an instance of the Web service class.
Counter myCounter = new Counter();
// Call the Web service method ServiceUsage.
UsageCount = myCounter.ServiceUsage();
Label1.BackColor = System.Drawing.Color.DarkSlateBlue;
Label1.ForeColor = System.Drawing.Color.Gold;
Label1.BorderStyle = System.Web.UI.WebControls.BorderStyle.Inset;
// Display the results in a Label Web Form server control.
if (UsageCount == 1)
Label1.Text ="Web service has been utilized >" + UsageCount.ToString() + "< time.";
else
Label1.Text= "Web service has been utilized >" + UsageCount.ToString() + "< times.";
}
</script>
<%@ Page Language="VB" %>
<asp:Label id="Label1" runat="server" />
<script runat=server language="VB">
Sub Page_Load(o As Object, e As EventArgs)
Dim UsageCount As Integer
' Create an instance of the Web service class.
Dim myCounter As New Counter()
' Call the Web service method ServiceUsage.
UsageCount = myCounter.ServiceUsage()
Label1.BackColor = System.Drawing.Color.DarkSlateBlue
Label1.ForeColor = System.Drawing.Color.Gold
Label1.BorderStyle = System.Web.UI.WebControls.BorderStyle.Inset
' Display the results in a Label Web Form server control.
If UsageCount = 1 Then
Label1.Text = "Web service has been utilized >" & UsageCount.ToString() & "< time."
Else
Label1.Text = "Web service has been utilized >" & UsageCount.ToString() & "< times."
End If
End Sub
</script>