2014-11-16 55 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

哦!我敢打赌就是这样!我已经整夜,要停止做那个笑 –

相关问题