Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OneWay functions with ReliableSessions doesn't work #4393

Closed
mconnew opened this issue Oct 14, 2020 · 0 comments · Fixed by #4395
Closed

OneWay functions with ReliableSessions doesn't work #4393

mconnew opened this issue Oct 14, 2020 · 0 comments · Fixed by #4395

Comments

@mconnew
Copy link
Member

mconnew commented Oct 14, 2020

@mconnew I pulled latest master and built the service model packages but can't get a reliable session one way call to work under netcore3.1. Getting this assertion:

Process terminated. Assertion failed.
Type 'System.ServiceModel.Channels.ReliableOutputSessionChannelOverDuplex' is required to override OnOpenAsync
   at System.ServiceModel.Channels.CommunicationObject.OnOpenAsyncInternal(TimeSpan timeout) in C:\Projects\dotnet\wcf\src\System.Private.ServiceModel\src\System\ServiceModel\Channels\CommunicationObject.cs:line 561
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at System.ServiceModel.Channels.CommunicationObject.OnOpenAsyncInternal(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.System.ServiceModel.IAsyncCommunicationObject.OpenAsync(TimeSpan timeout) in C:\Projects\dotnet\wcf\src\System.Private.ServiceModel\src\System\ServiceModel\Channels\CommunicationObject.cs:line 532
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at System.ServiceModel.Channels.CommunicationObject.System.ServiceModel.IAsyncCommunicationObject.OpenAsync(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.OpenAsyncInternal(TimeSpan timeout) in C:\Projects\dotnet\wcf\src\System.Private.ServiceModel\src\System\ServiceModel\Channels\CommunicationObject.cs:line 504
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at System.ServiceModel.Channels.CommunicationObject.OpenAsyncInternal(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) in C:\Projects\dotnet\wcf\src\System.Private.ServiceModel\src\System\ServiceModel\Channels\CommunicationObject.cs:line 498
   at System.Runtime.TaskHelpers.CallActionAsync[TArg](Action`1 action, TArg argument) in C:\Projects\dotnet\wcf\src\System.Private.ServiceModel\src\Internals\System\Runtime\TaskHelpers.cs:line 377
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1.ExecutionContextCallback(Object s)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1.MoveNext(Thread threadPoolThread)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1.MoveNext()
   at System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.<>c.<System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted>b__5_0(Object s)
   at System.Runtime.ServiceModelSynchronizationContext.<>c__DisplayClass1_0.<Post>b__0(Object s) in C:\Projects\dotnet\wcf\src\System.Private.ServiceModel\src\Internals\System\Runtime\ServiceModelSynchronizationContext.cs:line 15
   at System.Runtime.IOThreadScheduler.ScheduledOverlapped.Callback() in C:\Projects\dotnet\wcf\src\System.Private.ServiceModel\src\Internals\System\Runtime\IOThreadScheduler.cs:line 461
   at System.Runtime.IOThreadScheduler.ScheduledOverlapped.IOCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) in C:\Projects\dotnet\wcf\src\System.Private.ServiceModel\src\Internals\System\Runtime\IOThreadScheduler.cs:line 434
   at System.Runtime.Fx.IOCompletionThunk.UnhandledExceptionFrame(UInt32 error, UInt32 bytesRead, NativeOverlapped* nativeOverlapped) in C:\Projects\dotnet\wcf\src\System.Private.ServiceModel\src\Internals\System\Runtime\Fx.cs:line 485
   at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pNativeOverlapped)

Repro here:
https://github.com/ssa3512/wcf-reliable-sessions

With service host project running
dotnet run -f net472 --project .\wcfasynctestclient\wcfasynctestclient.csproj succeeds
dotnet run -f netcoreapp3.1 --project .\wcfasynctestclient\wcfasynctestclient.csproj fails

Am I missing something?

Originally posted by @ssa3512 in https://github.com/dotnet/wcf/issue_comments/708584592

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant