Diễn đàn    ASP.NET & Sharepoint MOSS, WSS 2007    Tạo file ashx bằng C#

Thành viênTrả lời
lenh_ho_xung

Tieu ngao giang ho
42  bài
26-5-2008 22:1:41
<% @ webhandler language="C#" class="AverageHandler" %>

using System;
using System.Web;

public class AverageHandler : IHttpHandler
{
public bool IsReusable
{ get { return true; } }
public void ProcessRequest(HttpContext ctx)
{
ctx.Response.Write("hello");
}
}
 
lenh_ho_xung

Tieu ngao giang ho
42  bài
26-5-2008 22:2:43
Đơn giản nhỉ nhưng mà chạy ngon hơn trên aspx nhiều nhất là với sử lý file ảnh, mình mới bit thông tin này. Còn tại sao thì anh em tự tìm hiểu nhá !!
 
lenh_ho_xung

Tieu ngao giang ho
42  bài
26-5-2008 22:3:31
Còn đây là mẫu code làm con RSS

------------
RSSHandler.cs

namespace KBMentor2
{
using System;
using System.IO;
using System.Web;


public class RSSHandler : IHttpHandler
{
public void ProcessRequest (HttpContext context)
{
context.Response.ContentType = "text/xml";
context.Response.ContentEncoding = System.Text.Encoding.UTF8;

string sXml = BuildXMLString(); //not showing this function,
//but it creates the XML string

context.Response.Cache.SetExpires(DateTime.Now.AddSeconds(600));
context.Response.Cache.SetCacheability(HttpCacheability.Public);
context.Response.Write( sXml );
}

public bool IsReusable
{
get { return true; }
}

}

}
 
lenh_ho_xung

Tieu ngao giang ho
42  bài
26-5-2008 22:4:37
Nếu dùng aspx thì hơi khác một chút, anh em chúng ta phải thay đổi contenttype của file thành dạng xml, chứ mặc định nó là html

-----------

public class RSS : System.Web.UI.Page
{

private void Page_Load(object sender, System.EventArgs e)
{
Response.ContentType = "text/xml";
Response.ContentEncoding = Encoding.UTF8;

string sXml = BuildXMLString(); //not showing this function,
//but it creates the XML string

Response.Write( sXml );
Response.End();
}
}
 
lenh_ho_xung

Tieu ngao giang ho
42  bài
26-5-2008 22:22:44
Có một cái lỗi chung chung nhá. Đây là code mẫu

-----------
<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Web;

public class Handler : IHttpHandler {

public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
context.Response.Write("Hello World");
}

public bool IsReusable {
get {
return false;
}
}

}
 
lenh_ho_xung

Tieu ngao giang ho
42  bài
26-5-2008 22:24:6
Cái code này sẽ ra lỗi sau :



Còn nếu thay content type thành text/html thì ngon
code như sau :

-------------
<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Web;
using System.Web.SessionState;

public class Handler : IHttpHandler , IReadOnlySessionState{

public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/html";
context.Response.Write("Hello World");
}

public bool IsReusable {
get {
return false;
}
}

}


và kết quả sẽ là

 
aspnet

Lập trình không biên giới
608  bài
26-5-2008 23:17:5


Phải xem cái hình này để thấy lúc có 1 request đến server, thằng IIS tạo ra một đống các đối tượng: HttpContext, HttpRequest, and HttpResponse, HttpApplication. Mà để thằng aspx (page) chạy ngon thì thực tế là nó tạo ra 1 loạt các event và khởi tạo một tỷ thứ linh tinh khác theo thứ tự dưới đây:

PreInit
Init
InitComplete
PreLoad
Load
Control events
LoadComplete
PreRender
SaveStateComplete
Render
Unload

có 11 bước thôi mà làm gì nhiều lắm đâu.
Còn thằng ashx thì chỉ đơn giản độc có 1 hàm thực hiện đó là

ProcessRequest

Nên nó nhanh hơn là phải thoai. hehe
 
lenh_ho_xung

Tieu ngao giang ho
42  bài
26-5-2008 23:22:15
hờ hơ, cảm ơn pác aspnet nhá
 

Chủ đề gần đây :

Cùng loại :

Tên file Mô tả chi tiết Ngày
NWeb.zip (1) Module đơn giản Newsweb trên Dotnetnuke v10.x.x.x10/18/2025 8:08:11 AM
vspforum.zip (11) Ma nguon vspforum ngay xua4/18/2023 6:38:37 AM
pdfjs.rar (2) pdfjs 2017 : hiển thị tốt trên iphone 11, 12, 13 không lỗi, bản 2012 sẽ lỗi trên iphone6/21/2022 11:52:48 AM
pdfjs2.rar (2) Xem file pdf bằng viewer.hml cua pdfjs (thư viện chuẩn mozilla) 2012. https://mozilla.github.io/pdf.js/getting_started/#download có thể download bản prebuild tại đây6/21/2022 11:52:04 AM
runner.zip (0) using three.js, orbitcontrol to view an object move random on map. Di chuyển 1 đồ vật ngẫu nhiên trên bản đồ, sử dụng với demo nhân viên di chuyển trong văn phòng. Toàn js download về là chạy12/5/2019 5:55:14 PM
gmap.zip (1) google map + marker7/17/2019 2:25:05 PM
vinsmarthomeservice.zip (1) java post json to api, use AsyncTask, event listener7/9/2019 5:00:10 PM
fblogin.zip (0) Login facebook bang javascript SDK7/9/2019 9:16:37 AM
autocomplete-location.zip (2) autocomplete location geo from google place, html + js7/4/2019 4:37:55 PM
WebAPI.zip (8) api for android access db (v1.0.0)7/4/2019 9:14:17 AM