Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Làm thế nào để thực hiện đầu ra bộ nhớ đệm với dịch vụ Web trong Visual C#.NET

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:318299
TÓM TẮT
Chú ý Sau đây.Không gian tên thư viện lớp NET Framework được tham chiếu trong bài viết này:
  • System.Web.Services
  • System.Text
Bài viết từng bước này mô tả cách để tạo ra một mẫu ASP.NET Dịch vụ web có sử dụng đầu ra bộ nhớ đệm. Sản lượng bộ nhớ đệm lưu trữ các phản ứng sản lượng kết quả của một dịch vụ Web dựa trên các Thời gian thực hiện thuộc tính được chỉ định cho một tương ứng WebMethod.

Chú ý Trong ASP.NET 2.0, phương thức HTTP trang kiểm thử đã thay đổi từ GET để đăng bài. Tuy nhiên, bài viết không được lưu thường trữ. Nếu bạn thay đổi trang kiểm tra một ASP.NET 2,0 Web dịch vụ ứng dụng sử dụng nhận được, bộ nhớ đệm công trình một cách chính xác. Ngoài ra, HTTP chỉ ra rằng một đại lý người dùng (trình duyệt hoặc gọi điện thoại ứng dụng) có thể ghi đè lên các máy chủ bộ nhớ đệm bằng cách thiết lập các tiêu đề Cache-Control để "no-cache." Vì vậy, ASP.Các ứng dụng NET bỏ qua Cache kết quả khi họ tìm thấy một tiêu đề "bộ nhớ cache không có".

back to the top

Yêu cầu

Danh sách sau vạch ra được đề nghị phần cứng, phần mềm, hạ tầng mạng, và gói dịch vụ được yêu cầu:
  • Microsoft Windows 2000 Professional, Microsoft Windows 2000 Hệ phục vụ, Microsoft Windows 2000 Advanced Server, hoặc Microsoft Windows XP
  • Microsoft.NET Framework
  • Microsoft Internet Information Services (IIS)
back to the top

Tạo ra một mới ASP.NET Web dịch vụ ứng dụng

Tạo ra một mới ASP.NET Web dịch vụ ứng dụng tên là WSCacheSample:
  1. Bắt đầu Visual Studio.NET.
  2. Trên các Tệp trình đơn, điểm đến Mới, sau đó bấm Dự án để chạy thuật sĩ dự án mới.
  3. Dưới Các loại dự án, chọn Visual C#. Dưới Khuôn mẫu, chọn ASP.NET Web dịch vụ.
  4. Trong các Vị trí hộp, thay thế "WebService #" trong đường dẫn URL với tên của bạn dự án, WSCacheSample. Nếu bạn đang sử dụng máy chủ địa phương, để lại như tên máy chủ http://localhost, do đó các Vị trí hộp trông tương tự như này:
    http://localhost/WSCacheSample
back to the top

Tạo ra các dịch vụ Web mẫu

  1. Trong giải pháp Explorer, bấm chuột phải vào nút dự án, điểm để Thêm, sau đó bấm Thêm dịch vụ Web.
  2. Đối với tên, gõ CacheDemo.asmx, sau đó bấm Mở. Dịch vụ Web sẽ mở ra trong thiết kế giao diện.
  3. Nhấp chuột phải vào các dịch vụ Web, và sau đó nhấp vào Xem mã.
  4. Thêm mã sau vào tập tin lớp CacheDemo.asmx.cs. Điều này cho biết thêm một WebMethod thuộc tính được đặt tên GetCacheEntryTime với một CacheDuration 60 giây.
    [WebMethod(CacheDuration=60)]public string GetCacheEntryTime(string Name){	StringBuilder sb = new StringBuilder("Hi ");	sb.Append(Name);	sb.Append(", the Cache entry was made at ");	sb.Append(System.DateTime.Now.ToString());		return(sb.ToString());}						
    LƯU Ý: Theo mặc định, các CacheDuration cho một WebMethod thuộc tính được đặt thành 0, có nghĩa rằng nó không phải là cache.
  5. Bởi vì mẫu mã sử dụng các StringBuilder phương pháp, bao gồm một tham chiếu đến các System.Text không gian tên. Không gian tên liệt kê cho các dịch vụ Web trông tương tự như này:
    using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Diagnostics;using System.Web;using System.Web.Services;using System.Text;						
    LƯU Ý: Để biết thêm thông tin về các StringBuilder lớp, hãy truy cập trang Web Microsoft Developer Network (MSDN) sau đây Trang web:
  6. Trong phòng thu trực quan.NET IDE, bấm Xây dựng giải pháp trên các Xây dựng trình đơn.
  7. Trên các Tệp trình đơn, nhấp vào Lưu tất cả lưu dự án và các tập tin liên quan.
back to the top

Kiểm tra dự án

Bây giờ mà bạn đã tạo ra các mẫu CacheDemo Dịch vụ web, chạy các GetCacheEntryTimeWebMethod để xem những ảnh hưởng của các CacheDuration thuộc tính thiết lập:
  1. Trong giải pháp Explorer, bấm chuột phải vào CacheDemo.asmx, sau đó bấm Xem trong trình duyệt.

    Các tập tin .asmx sẽ mở ra trong trình duyệt, và các GetCacheEntryTimeWebMethod thuộc tính được liệt kê như là một mục dấu đầu dòng ở trên cùng của các Trang.
  2. Bấm vào các GetCacheEntryTime liên kết.
  3. Trong các Tên hộp cho các phương pháp, loại Joe và sau đó Nhấp vào Gọi để chạy các WebMethod thuộc tính và trở lại kết quả XML. Nhận thấy thời gian đóng dấu mà được trả lại trong thư.

    LƯU Ý: Nếu các WebServices giúp trang không xuất hiện, bạn có thể chạy các WebService phương pháp bằng cách gõ sau đây trong hộp địa chỉ Web trình duyệt:
    http://localhost/wscachesample/cachedemo.asmx/GetCacheEntryTime?Name=Joe					
  4. Chạy các WebMethod một lần nữa bằng cách gõ Joe. LƯU Ý: Nếu bạn chạy các WebMethod thuộc tính trong lần thứ 60 hai khoảng thời gian mà được xác định bởi các CacheDuration thuộc tính, cùng một thời gian đóng dấu sẽ xuất hiện.
  5. Lặp lại bước 4, nhưng loại Amy Thay vào đó của Joe trong các Tên hộp cho các WebMethod thuộc tính tham số.

    Nhận thấy rằng thời gian đóng dấu kết quả là khác nhau. Điều này xảy ra bởi vì mặc định đầu ra bộ nhớ đệm kết quả dựa trên các tham số của các WebMethod thuộc tính. Trong ví dụ này, Joe là giá trị tham số cho lần đầu tiên hai bài kiểm tra và các cache đầu ra được trả lại cho các thử nghiệm thứ hai. Khi bạn sử dụng Amy trong thử nghiệm thứ ba, bạn nhận được một kết quả mới. Nếu bạn lặp lại các kiểm tra trong 60 giây, bạn sẽ nhận được một kết quả đầu ra được lưu trữ. Sự khác biệt trong kết xuất bộ nhớ đệm Phiên bản là liên quan đến các thông số của các WebMethod thuộc tính.
back to the top

Khắc phục sự cố

Khi bạn quyết định có hay không để thực hiện sản lượng bộ nhớ đệm cho dịch vụ Web của bạn, hãy nhớ rằng máy chủ tài nguyên có thể bị ảnh hưởng tiêu cực nếu các WebMethod các thông số thuộc tính có liên quan đến các yêu cầu khác nhau rộng rãi, hoặc nếu các phản ứng liên quan đến một lượng lớn dữ liệu.

back to the top
THAM KHẢO
Để biết thêm thông tin về các WebMethodAttribute.CacheDuration bất động sản và các WebMethodAttribute lớp, xem chủ đề sau đây trong các.NET Framework Class Thư viện tài liệu: Để biết thêm chi tiết về các dịch vụ Web, truy cập vào các MSDN Web trang web sau đây:
Hướng dẫn cho dịch vụ XML Web tạo ra sử dụng ASP.NET
http://msdn2.Microsoft.com/en-US/Library/w8excbb0 (vs.71) .aspx

Sử dụng thuộc tính WebMethod
http://msdn2.Microsoft.com/en-US/Library/byxd99hx (vs.71) .aspx
Thêm mẫu, tài liệu và liên kết có liên quan để lập trình với các.NET Framework, thăm CodePlex Web site sau: back to the top

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 318299 - Xem lại Lần cuối: 08/27/2011 20:36:00 - Bản sửa đổi: 2.0

Microsoft ASP.NET 1.1, Microsoft ASP.NET 1.0, Microsoft ASP.NET 2.0, Microsoft Web Services Enhancements for Microsoft .NET 1.1, Microsoft Visual C# .NET 2002 Standard Edition

  • kbcaching kbhowtomaster kbmt KB318299 KbMtvi
Phản hồi
rosoft.com/ms.js">