Azure / azure-sdk-for-net

This repository is for active development of the Azure SDK for .NET. For consumers of the SDK we recommend visiting our public developer docs at https://learn.microsoft.com/dotnet/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-net.
MIT License
5.57k stars 4.82k forks source link

Error processing method: 'System.Void Microsoft.AspNetCore.SignalR.HubConnectionContext/<WriteHandshakeResponseAsync>d__47::MoveNext()' in assembly: 'Microsoft.AspNetCore.SignalR.Core.dll' ---> Mono.Cecil.ResolutionException: Failed to resolve System.ReadOnlyMemory`1<System.Byte> #3022[BUG] #30986

Closed aproko234 closed 1 year ago

aproko234 commented 2 years ago

Library name and version

Microsoft.AspNetCore.SignalR.Core.dll 6.0.0

Describe the bug

I am having this issue when trying to archive my android project in VS 17.3.1:

Project.zip

This is what @vitek-karas posted about the issue in another github forum:

The problem is a large version mismatch in resolved dependencies. The project AbuseAlert references Microsoft.AspNetCore.SignalR.Client version 6.0.8 - which brings in Microsoft.AspNetCore.SignalR.Common.dll version 6.0.0. The project AbuseAlert also referenced Microsoft.Azure.WebJobs.Extensions.SignalRService version 1.8.0 which eventually references Microsoft.AspNetCore.SignalR.dll version 1.0.0 which in turn has a reference to Microsoft.AspNetCore.SignalR.Common.dll version 1.0.0. But due to the above, it's resolved as version 6.0.0. Apparently there have been public API breaking changes in that assembly between versions 1.0.0 and 6.0.0, one such example is that version 1.0.0 had a field HandshakeProtocol.SuccessHanshakeData but version 6.0.0 doesn't have it.

I don't know what would be the best way to resolve this honestly, it's a version mismatch between dependencies which are not backward compatible.

The main problem is with Microsoft.Azure.WebJobs.Extensions.SignalRService which has a dependency on Microsoft.AspNetCore.SignalR package which has been deprecated. But as far as I can tell, there's no higher version available. https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/signalr/Microsoft.Azure.WebJobs.Extensions.SignalRService/src/Microsoft.Azure.WebJobs.Extensions.SignalRService.csproj

Other things to consider:

The Mono.Android toolchain could be made resilient to unresolved references (maybe the code path is never executed in the app, and thus it could still work). But it's using a rather old version, which we're unlikely to fix. - maybe somebody from the Mono.Adroid team would be able to suggest a solution.

Expected behavior

This project compiles and runs successfully (in debug mode) before I attempted to archive it (in release mode). It gives the afore-mentioned error.

Actual behavior

Severity Code Description Project File Line Suppression State Error Mono.Linker.MarkException: Error processing method: 'System.Void Microsoft.AspNetCore.SignalR.HubConnectionContext/d__47::MoveNext()' in assembly: 'Microsoft.AspNetCore.SignalR.Core.dll' ---> Mono.Cecil.ResolutionException: Failed to resolve System.ReadOnlyMemory`1 Microsoft.AspNetCore.SignalR.Protocol.HandshakeProtocol::SuccessHandshakeData at Mono.Linker.Steps.MarkStep.HandleUnresolvedField(FieldReference reference) at Mono.Linker.Steps.MarkStep.MarkInstruction(Instruction instruction) at Mono.Linker.Steps.MarkStep.MarkMethodBody(MethodBody body) at Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition method) at Mono.Linker.Steps.MarkStep.ProcessQueue() --- End of inner exception stack trace --- at Mono.Linker.Steps.MarkStep.ProcessQueue() at Mono.Linker.Steps.MarkStep.ProcessPrimaryQueue() at Mono.Linker.Steps.MarkStep.Process() at Mono.Linker.Steps.MarkStep.Process(LinkContext context) at MonoDroid.Tuner.MonoDroidMarkStep.Process(LinkContext context) at Mono.Linker.Pipeline.ProcessStep(LinkContext context, IStep step) at Mono.Linker.Pipeline.Process(LinkContext context) at MonoDroid.Tuner.Linker.Process(LinkerOptions options, ILogger logger, LinkContext& context) at Xamarin.Android.Tasks.LinkAssemblies.Execute(DirectoryAssemblyResolver res) at Xamarin.Android.Tasks.LinkAssemblies.RunTask() at Microsoft.Android.Build.Tasks.AndroidTask.Execute() in /Users/runner/work/1/s/xamarin-android/external/xamarin-android-tools/src/Microsoft.Android.Build.BaseTasks/AndroidTask.cs:line 17

Reproduction Steps

Download and load the attached project in VS 17.3.3. Compile in Release Mode and the issue will come up.

Environment

Windows 10 64-bit. .NET 6.0/SDK Version: 6.0.400. Visual Studio 17.3.3.

azure-sdk commented 2 years ago

Label prediction was below confidence level 0.6 for Model:ServiceLabels: 'Extensions:0.33332792,Service Bus:0.33313486,Event Hubs:0.16829221'

ghost commented 2 years ago

Thank you for your feedback. This has been routed to the support team for assistance.

markmercer10 commented 2 years ago

Any resolution on this? I am experiencing the same issue on our microsoft azure pipeline.

Y-Sindo commented 1 year ago

@aproko234 @markmercer10 Could you share more information about why you have Microsoft.AspNetCore.SignalR.Core and Microsoft.Azure.WebJobs.Extensions.SignalRService in the same project? I'm wonder if this Azure SignalR management SDK could replace the Microsoft.Azure.WebJobs.Extensions.SignalRService package as the former one is the base of the latter one and provides all the functionalities of the latter one.

github-actions[bot] commented 1 year ago

Hi @aproko234. Thank you for opening this issue and giving us the opportunity to assist. To help our team better understand your issue and the details of your scenario please provide a response to the question asked above or the information requested above. This will help us more accurately address your issue.

github-actions[bot] commented 1 year ago

Thanks for the feedback! We are routing this to the appropriate team for follow-up. cc @sffamily @chenkennt @Y-Sindo.

github-actions[bot] commented 1 year ago

Hi @aproko234, we're sending this friendly reminder because we haven't heard back from you in 7 days. We need more information about this issue to help address it. Please be sure to give us your input. If we don't hear back from you within 14 days of this comment the issue will be automatically closed. Thank you!