我正在尝试从 Azure 移动服务中的 API 函数发送 serviceBusQueue 消息,即使它成功创建了queueService并且队列存在,我还是收到了一个令人讨厌的异常。知道如何解决这个问题吗?
我已附上发送代码和堆栈跟踪。
function sendBusMessage(request, params, message, success)
{
console.log(params);
var queueService = azure.createServiceBusService(params.namespace,params.key);
console.log(queueService);
if (queueService)
{
queueService.sendQueueMessage('worker', message, function (error)
{
if (!error)
{
success();
}
else
{
request.respond(statusCodes.INTERNAL_SERVER_ERROR,error);
}
});
}
}
异常堆栈:
发生未处理的异常。类型错误:无法将属性“body”设置为 null 在 ServiceClient._performRequest.self._buildRequestOptions.operation (D:\home\site\wwwroot\node_modules\azure\lib\services\core\serviceclient.js:210:34) 在 ServiceClient._performRequest (D:\home\site\wwwroot\node_modules\azure\lib\services\core\serviceclient.js:264:7) 在 ServiceBusService.ServiceClient._initDefaultFilter.filter (D:\home\site\wwwroot\node_modules\azure\lib\services\core\serviceclient.js:534:7) 在 ServiceClient._performRequest (D:\home\site\wwwroot\node_modules\azure\lib\services\core\serviceclient.js:261:10) 在 ServiceBusServiceClient._buildRequestOptions (D:\home\site\wwwroot\node_modules\azure\lib\services\core\servicebusserviceclient.js:107:5) 在 Wrap.signRequest (D:\home\site\wwwroot\node_modules\azure\lib\services\serviceBus\wrap.js:69:5) 在 WrapTokenManager.getAccessToken (D:\home\site\wwwroot\node_modules\azure\lib\services\serviceBus\wraptokenmanager.js:76:5) 在 WrapService.wrapAccessToken.finalCallback (D:\home\site\wwwroot\node_modules\azure\lib\services\serviceBus\wrapservice.js:98:7) 在 ServiceClient._initDefaultFilter.filter (D:\home\site\wwwroot\node_modules\azure\lib\services\core\serviceclient.js:538:11) 在 WrapService.wrapAccessToken.processResponseCallback (D:\home\site\wwwroot\node_modules\azure\lib\services\serviceBus\wrapservice.js:101:5)
最佳答案
命名空间
用于配置 Node.js 的命名空间
是在Service Bus
选项卡下可见的(非常简单)。
访问 key
不幸的是,它很容易与为特定消息传递功能实例(例如队列)定义的访问键混淆。提供无效的访问 key 可能会导致出现类似问题的堆栈跟踪。
用于配置 Node.js 的访问键
是从连接信息
窗口访问的键。要到达该位置,您需要导航到 Service Bus
主选项卡(带有云图标的选项卡),然后单击位于的栏上的Connection Information
按钮。底部。它是 DEFAULT ISSUER
部分正下方的 Default Key
。
配置命名空间和访问 key
命名空间
和访问 key
都可以直接传递给azure.createServiceBusService()
函数,或者(配置移动服务时)通过应用设置
配置部分中的AZURE_SERVICEBUS_NAMESPACE
和AZURE_SERVICEBUS_ACCESS_KEY
键进行设置。
关于azure - Azure serviceBusService 未处理的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25334529/