2014-11-16 102 views
0

因此,我在我的NServiceBus服務本地主機中排隊消息。我NServiceBus服務得到消息做了一些工作,然後試圖調用一個ASP.NET MVC控制器,具有以下特徵:WebClient從NServiceBus /隊列服務發佈到MVC控制器

[HttpPost] 
[AllowAnonymous] 
public void MyMethod(long accountId, long channelId, long messageId) 

我使用System.Net.WebClient嘗試使用此代碼HttpPost

var url= "http://localhost:53777/MyMethod"; 
var _accIdStr = Convert.ToString(_accountIdLong); 
var _chanIdStr = Convert.ToString(_channelIdLong); 
var _messIdStr = Convert.ToString(_messageIdLong); 

using (var client = new WebClient()) 
{ 
    var values = new NameValueCollection 
    { 
      { "accountId", _accIdStr }, 
      { "channelId", _chanIdStr }, 
      { "messageId", _messIdStr } 
    }; 
    var responsebytes = client.UploadValues(url, "POST", values); 
    var responsebody = Encoding.UTF8.GetString(responsebytes); 
} 

我剛剛得到的錯誤:

The remote server returned an error: (500) Internal Server Error.

我有一個斷點MyMethod設置,它甚至沒有擊中,就在沒有進入到MyMethod。它使我認爲MyMethod的簽名沒有被路由到。

或者,也許這是因爲我是本地主機?

回答

1

不太可能。 500通常意味着您的MVC應用程序引發了異常。

如果斷點沒有命中,那麼模型聯編程序不會將發佈數據綁定到fields屬性。

如果確實遇到問題,請確定崩潰的代碼行並解決問題。

此外,看起來像你試圖訪問控制器,而不包括控制器名稱。默認的MVC路由是:BASEURL/CONTROLLERNAME/ACTION,其中ACTION是MyMethod。所以你的應該是http:// localhost:53777/CONTROLLERNAME/MyMethod

+0

是的我有一箇中斷點設置,它甚至沒有擊中「MyMethod」 –

+0

只是還記得這應該是在本地主機/ CONTROLLERNAME/MyMethod –

+0

哦!我敢打賭就是這樣!我已經整夜,要停止做那個笑 –

相關問題