我在 StartProcessingAsync() 方法后遇到例外。除錯指標指向“ProcessorErrorAsync”方法。我遵循了鏈接中提供的類似步驟 - https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/servicebus/Azure.Messaging.ServiceBus/samples/Sample04_Processor.md 我錯過了一些這里的步驟?例外詳情:error.Exception.Message:
Method not found: 'System.Threading.Tasks.Task`1<System.Collections.Generic.IEnumerable`1<Microsoft.Azure.Amqp.AmqpMessage>> Microsoft.Azure.Amqp.ReceivingAmqpLink.ReceiveMessagesAsync(Int32, System.TimeSpan, System.TimeSpan, System.Threading.CancellationToken)'.
private void ListenerBind(string key, ServiceBusProcessorOptions onMessageOptions)
{
ServiceBusClient tempClient = this._cacheClient.Get(key);
ServiceBusProcessor tempProcessor = tempClient.CreateProcessor(this._topicName, this._subscriptionName, onMessageOptions);
try
{
//temp.OnMessageAsync(this.MessageProcessCallBackAsync, onMessageOptions);
tempProcessor.ProcessMessageAsync = MessageProcessCallBackAsync;
tempProcessor.ProcessErrorAsync = ProcessErrorAsync;
tempProcessor.StartProcessingAsync();
}
catch (InvalidOperationException ex)
{
this._logger.Log($"{ex.Message}", EventLevel.Informational);
}
catch (Exception ex)
{
this._logger.LogException(ex);
}
}
private Task ProcessErrorAsync(ProcessErrorEventArgs error)
{
Exception ex = new Exception(
$" , Action {error.ErrorSource}, "
$" , Endpoint {error.FullyQualifiedNamespace}"
$",EntityPath {error.EntityPath} "
, error.Exception);
this._logger.LogException(ex);
this._onErrorCallback(ex, string.Empty);
return Task.CompletedTask;
}
uj5u.com熱心網友回復:
謝謝jsquire和arunprakashn。發布您的建議作為幫助其他社區成員的答案。
事實證明,參考新的 Amqp nuget 存在問題。我看到最新的 Azure.Amqp 是新服務總線 SDK 附帶的依賴項,但仍然存在參考問題。我多次洗掉了 Amqp nuget 并重新添加,但這并沒有解決問題。“.nuspec”檔案仍然參考了舊版 SDK,當我對其進行評論時,重新添加了新的 Azure.Messaging.Servicebus nuget,錯誤消失了。
- 注釋舊版 SDK 的行,如下所示:
<group targetFramework=".NETFramework4.8">
<dependency id="Microsoft.Extensions.DependencyInjection.Abstractions" version="2.0.0"/>
<dependency id="Microsoft.Rest.ClientRuntime" version="2.2.0"/>
<dependency id="Newtonsoft.Json" version="12.0.3"/>
<dependency id="Ninject" version="3.3.4"/>
<!--<dependency id="WindowsAzure.ServiceBus" version="5.1.0"/>-->
<dependency id="Polly" version="7.1.0"/>
<dependency id="RabbitMQ.Client" version="5.0.1"/>
<dependency id="System.Diagnostics.DiagnosticSource" version="4.5.0"/>
<dependency id="System.Diagnostics.TraceSource" version="4.3.0"/>
<dependency id="System.Diagnostics.Tracing" version="4.3.0"/>
</group>
可以參考 GitHub 問題:使用 ServiceBusProcessor 時出錯 - Azure.Messaging.ServiceBus SDK
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/381682.html
上一篇:Microsoft語音NuGet包在C 專案中不起作用
下一篇:AzureApi服務請求限制
