2016-01-20 64 views
0

我是MVC的新手,我想要一些建議來解決我的問題。從Windows服務接收數據並將它們顯示給MVC

這種情況: 我有一個windows服務,返回一個列表。此外,這個Windows服務打開一個http連接來共享結果。

我想在MVC應用程序中顯示列表。我通過MVC連接到Windows服務「擊中」服務器所在的IP和端口。

的問題 當我運行MVC應用程序列表中的計數爲0。 當我把一個斷點MVC的代碼,我得到服務的結果中,列表的數量是正確的。

我試圖把任務延遲,因爲我認爲MVC需要一些時間的http連接,但什麼都沒有發生。

有兩個問題plz。

  1. 你認爲問題是MVC沒有足夠的時間反應還是別的東西?

  2. 從Windows服務共享數據或我需要創建Web服務是一個好策略嗎?

TNX提前

回答

0

我曾與顯示在MVC數據的我的服務的列表同樣的問題。我通過在我的服務中添加了selfHosted web API來解決這個問題。我創建了一個以JSON格式返回列表數據的API控制器。我的代碼看起來是這樣的:

public class ListController : ApiController 
{ 
    // GET api/list 
    public List<Object> Get() 
    { 
     return (myList); 
    } 
} 

然後我called the API from MVC控制器異步:

// Create an HttpClient instance 
HttpClient client = new HttpClient(); 
// add your url 
client.BaseAddress = new Uri("http://localhost:8080/"); 
//GET the response async from List Controller 
HttpResponseMessage response = client.GetAsync("api/list").Result; 
if (response.IsSuccessStatusCode) 
{ 
    var JsonList =response.Content.ReadAsStringAsync().Result; 
    return View(JsonList); 
} 

最後,我會建議授權添加到您的API,也爲了防止你的API數據暴露在使用SSL其他。

相關問題