Hướng dẫn viết .NET DLL cho Classic ASP (cả VB.NET và C#)
Classic ASP (Vbscript) là một ngôn ngữ lập trình web đơn giản của Windows. Nó cho phép bạn tạo ra 1 website nhanh chóng trên hệ điều hành WIndows chỉ với công cụ soạn thảo Notepad++ và một chút hiểu biết về Visual Basic/Vbscript. Sự đơn giản thuận tiện của Classic ASP nếu được kết hợp với sức mạnh của .NET Framework thì việc coding chỉ nhẹ nhàng như hoa vàng trên cỏ xanh. Sau đây UltraViewer xin chia sẻ các bạn một độc chiêu giúp triển khai .NET Dll trên nền Classic ASP.
Bạn cũng có thể tạo file .snk bằng công cụ sn.exe rồi import vào ( https://msdn.microsoft.com/en-us/library/k5b5tt23%28v=vs.71%29.aspx )
Thực hiện 2 lệnh sau bằng cmd :
lưu ý : phải cd đến thư mục chứa 2 công cụ trên. Công cụ regasm nằm trong %windir%\Microsoft .NET\Framework2.0\ khi bạn cài .NET framework. Còn công cụ gacutil đi cùng bộ Visual Studio tại C:Program Files Microsoft SDKs Windows 6.0A . Nếu bạn triển khai trên server mà không có sẵn công cụ gacutil thì có thể copy từ máy bạn qua 3 file sau : gacutil.exe, gacutil.exe.config và gacutlrc.dll.
- Test trên window server 2003 không cần reset
* Nếu bạn làm theo hướng dẫn mà gặp lỗi, có thể tham khảo các lỗi thường gặp:
- Chưa IISReset hoặc chưa Gacutil :
- Lỗi error '80070002' trên Window server 2003 sau một thời gian sử dụng, reset lại iis thì hoạt động bình thường.
Lưu ý : đây là tài liệu nghiên cứu độc quyền của học viện nghiên cứu khoa học DucFabulous, nếu bạn xuất bản lại xin vui lòng ghi rõ nguồn. Bài viết có sử dụng hình ảnh của website http://bruceburge.com/2009/06/11/sharing-net-libary-dlls-between-asp-classic-and-aspnet/ .
1. Tạo Project 'Class Libarry'
Nếu chưa biết cách tạo ra file Class Library .DLL bằng .NET Framework như thế nào thì bạn có thể thực hiện như sau : Trên Visual Studio Vào File -> New Project -> Class Library , rồi chọn OK2. Make Assembly Com-visible
Chuột phải vào Project vừa tạo, chọn Property, rồi bấm vào nút Assembly Information, tích vào "Make assembly COM-visible"3. Signing strong key
Vào tab Signing bên tay trái, chọn Sign the assembly, chọn New rồi đặt tên và mật khẩu rồi bấm Ok .Bạn cũng có thể tạo file .snk bằng công cụ sn.exe rồi import vào ( https://msdn.microsoft.com/en-us/library/k5b5tt23%28v=vs.71%29.aspx )
4. Viết code và build
Public Class Class1
Public Function Test() As String
Return "Day la lan test3"
End Function
End Class
Public Function Test() As String
Return "Day la lan test3"
End Function
End Class
5. Install DLL bằng 2 công cụ Regasm & gacutil.exe
Thực hiện 2 lệnh sau bằng cmd :
regasm /codebase "path-đến-dll"
gacutil.exe /if "path-đến-dll"
gacutil.exe /if "path-đến-dll"
lưu ý : phải cd đến thư mục chứa 2 công cụ trên. Công cụ regasm nằm trong %windir%\Microsoft .NET\Framework2.0\ khi bạn cài .NET framework. Còn công cụ gacutil đi cùng bộ Visual Studio tại C:Program Files Microsoft SDKs Windows 6.0A . Nếu bạn triển khai trên server mà không có sẵn công cụ gacutil thì có thể copy từ máy bạn qua 3 file sau : gacutil.exe, gacutil.exe.config và gacutlrc.dll.
6. IISRESET
Reset IIS sau khi install DLL (nếu dùng Windows 7). Có thể dùng lệnh iisreset ngay trên cmd.- Test trên window server 2003 không cần reset
7. Viết code classic ASP để sử dụng class trên
Dim a
Set a = Server.CreateObject("Mylib.Class1")
Response.write a.test
Set a = Server.CreateObject("Mylib.Class1")
Response.write a.test
Nếu bạn sửa lại code file DLL
Nếu bạn cần sửa lại code DLL, sau khi build file dll xong bạn cần install lại vào cache bằng gacutil như ở bước 5. Sau đó Reset IIS như ở bước 6/* Nếu bạn làm theo hướng dẫn mà gặp lỗi, có thể tham khảo các lỗi thường gặp:
- Chưa IISReset hoặc chưa Gacutil :
Server object error 'ASP 0177 : 8000ffff'
Server.CreateObject Failed
- Lỗi khác có thể gặp : http://blog.dantup.com/2010/03/intermittent-server-createobject-failed-asp-0177-8000ffff-error-creating-net-com-components/- Lỗi error '80070002' trên Window server 2003 sau một thời gian sử dụng, reset lại iis thì hoạt động bình thường.
Đối với Window 64 bit
Bạn cần vào IIS -> Application Pool để chỉnh lại Enable 32 bit application và chỉnh lại .NET Framework version cho phù hợpLưu ý : đây là tài liệu nghiên cứu độc quyền của học viện nghiên cứu khoa học DucFabulous, nếu bạn xuất bản lại xin vui lòng ghi rõ nguồn. Bài viết có sử dụng hình ảnh của website http://bruceburge.com/2009/06/11/sharing-net-libary-dlls-between-asp-classic-and-aspnet/ .
Viết bình luận (Cancel Reply)