2012-06-20 21 views
8

Trong WCF bạn có một cái gì đó như thế nàyLàm thế nào để đạt được Asp.net MVC OneWay/FireAndForget gọi như WCF không?

[ServiceContract] 
public interface IDoAuditService 
{ 
    [OperationContract(IsOneWay = true)] 
    [WebInvoke] 
    void Audit(AuditEntry auditEntry); 
} 

Mà kết quả là sẽ cho phép người tiêu dùng để đưa ra một yêu cầu và tiếp tục dòng chảy mà không cần chờ đợi một phản ứng.

Tôi đã thử Asp.net MVC với AsyncController nhưng người tiêu dùng sẽ vẫn chặn và đợi cho đến khi cuộc gọi lại sẽ được gọi trong bộ điều khiển.

Những gì tôi muốn là sử dụng Asp.Net MVC nhưng WCF hành vi như thế nào, tôi muốn đưa ra một yêu cầu và tiếp tục dòng chảy mà không cần chờ theo yêu cầu để được xử lý

+0

sử dụng C# .net framework treading. sẽ hoạt động ở phía máy chủ của bạn. –

Trả lời

3

gì về việc thực hiện các async cơ thể hành động trên máy chủ và chỉ cần quay lại người gọi ngay lập tức. Nó không chính xác là một ngọn lửa và quên đi nhưng nó sẽ mô phỏng điều đó.

public ActionResult MyAction() 
{ 
    var workingThread = new Thread(OperationToCallAsync); 
    workingThread.Start(); 

    return View(); 
} 

void OperationToCallAsync() 
{ 
    ... 
} 
+0

Có lẽ đây có thể là một giải pháp, tôi đã giả định rằng những gì tôi muốn là kịch bản phổ biến và được thực hiện nguyên bản nhưng tôi không biết. – ruslander

+0

Tôi không biết điều này được hỗ trợ nguyên bản. –

+0

Đây cũng là những gì tôi nghĩ nhưng điều gì sẽ xảy ra với workingThread khi MyAction() vượt quá phạm vi? – Buzzer

Các vấn đề liên quan