Điểm:0

IIS dường như cho phép tối đa một cuộc gọi dịch vụ web WCF đồng thời cho mỗi khách hàng

lá cờ cn

Chúng tôi có một ứng dụng cửa sổ gọi các phương thức dịch vụ web để truy cập cơ sở dữ liệu. Chúng tôi đã tìm thấy trường hợp chúng tôi thực hiện cuộc gọi dịch vụ web không đồng bộ dài (hơn 15 giây) tới dịch vụ WCF trên IIS. Nếu giao diện người dùng thực hiện các cuộc gọi dịch vụ web khác, chặn (đó là mã cũ) trong khi điều đó đang diễn ra, thì các cuộc gọi bổ sung đó sẽ chặn cho đến sau khi cuộc gọi không đồng bộ ban đầu hoàn tất.

Điều này không xảy ra khi cả giao diện người dùng và dịch vụ web đều đang chạy trong Visual Studio với IIS Express: Cuộc gọi chặn diễn ra nhanh chóng và tất cả nội dung đó hoàn thành trước khi cuộc gọi không đồng bộ dài kết thúc.

Tất cả các dịch vụ web đều có những điều sau đây:

<serviceThrottling 
    maxConcurrentCalls="5000" maxConcurrentSessions="5000" maxConcurrentInstances="5000" />

Ngoài ra, maxConnections="500" ở mọi nơi.

Chúng tôi muốn làm cho IIS xử lý các cuộc gọi dịch vụ web đồng thời này giống như cách IIS Express thực hiện đồng thời.

...

Nếu nó giúp được thì tất cả đều hợp lý: Chúng tôi thực hiện tìm kiếm đồ vật. Tìm kiếm trả về 50 mục hàng đầu (theo mặc định) đáp ứng tiêu chí và đồng thời chúng tôi thực hiện lệnh gọi không đồng bộ để đếm(*) trên cùng một truy vấn. Truy vấn đếm có thể mất nhiều thời gian. Người dùng nhấn mạnh rằng đôi khi họ muốn biết tổng số là bao nhiêu, nhưng họ thường muốn có thể mở các đối tượng trong danh sách kết quả rất lâu trước khi số đếm quay trở lại. Mở các đối tượng là nơi thực hiện các cuộc gọi dịch vụ web đồng bộ. Trước đây, kết quả tìm kiếm và số lượng đều là một phần của cùng một phương thức dịch vụ web.

Lex Li avatar
lá cờ vn
Bật theo dõi WCF trong cả hai trường hợp (IIS Express/IIS), https://docs.microsoft.com/en-us/dotnet/framework/wcf/diagnostics/tracing/configure-tracing và sau đó bạn sẽ có thể thấy rõ những gì Sai lầm.
Ed J. Plunkett avatar
lá cờ cn
@LexLi Cảm ơn, Lex. Tôi sẽ làm việc đó.
Ed J. Plunkett avatar
lá cờ cn
@LexLi Có bất kỳ thông tin cụ thể nào trong đó mà bạn nghĩ có thể hữu ích trong việc xác định nguyên nhân của vấn đề này không?
Lex Li avatar
lá cờ vn
Báo cáo cho nhà phát triển của ứng dụng web đó và anh ấy/cô ấy biết cách phân tích. Có một số ví dụ trong https://docs.microsoft.com/en-us/dotnet/framework/wcf/diagnostics/tracing/using-tracing-to-troubleshoot-your-application
Ed J. Plunkett avatar
lá cờ cn
@LexLi "Hỏi ai đó biết"? Đó thực sự là ý tưởng đằng sau việc đăng một câu hỏi ở đây.
Lex Li avatar
lá cờ vn
Bạn có thể xem lại các câu hỏi hiện có để xem loại nào có nhiều khả năng được trả lời hơn. Việc phân tích các sự cố WCF yêu cầu quyền truy cập vào nhật ký theo dõi và nhiều nhật ký khác (bất kỳ nhật ký nào trong số chúng có thể chứa thông tin bí mật) và có quá nhiều mẫu lỗi có thể được tóm tắt trong một câu trả lời đủ ngắn. Bản chất đó làm cho những câu hỏi như vậy khó (nếu không muốn nói là không thể) được thảo luận trên internet.
Ed J. Plunkett avatar
lá cờ cn
@lexli Chà, đây là câu hỏi mà tôi có.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.