2008년 08월 06일
08년 08월 01일 금요일
8월 1일 금요일 웹서비스& exception
2008년 8월 1일 금요일
오후 2:59
웹서비스 사용시 서버측 에러 처리
원격 함수의 마지막 인자로 전달할수 있다(사용 데이터 , 완료값을 처리할 함수 , 에러 발생시 함수)
Ex) function OnError(result)
{
document.getElementById("output").innerHTML = "<b>" +
result.get_exceptionType() +
"</b>:" + "<br />" +
result.get_message() +
"<br />" +
result.get_stackTrace();
}
페이지 메서드
해당 페이지의 코드파일에서 웹메서드 생성형식으로 생성하고
Ex) [WebMethod]
public static string SayHello(string name)
{
return "hi " + name;
}
페이지에서 스크립트 메니져 속성중 EnablePageMethods = "true"로
웹서비스로 구조체 데이터를 전달
[System.Web.Script.Services.GenerateScriptType(typeof(TYPE))]
웹메서드에서 세션을 사용
[WebMethod (EnableSession = true)]
공용괴지 않은 클래스를 상속할수 있게
HttpContext
member.cs
namespace AJAX
{
public class Member
{
public string name;
public string uid;
public int age;
}
}
Member.asmx
namespace AJAX
{
/// <summary>
/// Member1의 요약 설명입니다.
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
// ASP.NET AJAX를 사용하여 스크립트에서 이 웹 서비스를 호출하려면 다음 줄의 주석 처리를 제거합니다.
[System.Web.Script.Services.ScriptService]
[System.Web.Script.Services.GenerateScriptType(typeof(Member))]
public class Member1 : System.Web.Services.WebService
{
[WebMethod]
public List<Member> GetMembers(string uid)
{
List<Member> list = new List<Member>();
Member m;
m = new Member();
m.name = "박카스";
m.uid = "Junsae";
m.age = 25;
list.Add(m);
m = new Member();
m.name = "이만우";
m.uid = "Manwo";
m.age = 25;
list.Add(m);
m = new Member();
m.name = "유무글";
m.uid = "Moogle";
m.age = 24;
list.Add(m);
//m = new Member();
//m.name = "김태희";
//m.uid = "Beautiful";
//m.age = 24;
//list.Add(m);
return list;
}
[WebMethod(EnableSession=true)]
public Member GetMember()
{
List<Member> list = GetMembers("");
Member m = list.Where(e => e.name = HttpContext.Current.Session["name"].ToString())
.ElementAt(0);
return m;
}
}
}
WebForm4.aspx
<script type="text/javascript">
function test()
{
AJAX.Member1.GetMember(OnComplete, onerror);
}
function OnComplete(result)
{
document.getElementById("Text1").value = result.name;
}
function OnError(result)
{
document.getElementById("Text1").innerHTML = "<b>" +
result.get_exceptionType() + "</b>:" +
result.get_message() + "<br />" +
result.get_stackTrace();
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
<Services>
<asp:ServiceReference Path="~/Member.asmx" />
</Services>
</asp:ScriptManager>
<div>
<asp:Button ID="Button1" runat="server" Text="로그인" onclick="Button1_Click" />
</div>
</form>
<p>
<input id="Text1" type="text" /><input id="Button2" type="button"
value="button" onclick="test()" /></p>
</body>
</html>
WebForm4.aspx.cs
namespace AJAX
{
public partial class WebForm4 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Session["name"] = "김태희";
}
[WebMethod]
public static string GetMessage(string name)
{
return "Hi" + name;
}
}
}
# by | 2008/08/06 16:51 | 닷넷수업정리 | 트랙백 | 덧글(0)


