Giter Site home page Giter Site logo

servicetitan / stl.fusion.samples Goto Github PK

View Code? Open in Web Editor NEW
160.0 86.0 33.0 35.95 MB

A collection of samples for Fusion library: https://github.com/servicetitan/Stl.Fusion

License: MIT License

Batchfile 0.65% Dockerfile 0.81% HTML 32.26% C# 64.43% CSS 1.64% JavaScript 0.02% Shell 0.06% PowerShell 0.13%
blazor blazor-server blazor-webassembly dotnet dotnet-core realtime realtime-tracking

stl.fusion.samples's Introduction

Welcome to the collection of Fusion samples!

All project updates are published on its Discord Server; it's also the best place for Q/A.
Build Discord Server

Don't know what Fusion is? You should! Fusion is your #1 partner in crime if you're building a real-time app (an online app delivering some or all updates in real-time) or a high-load app. Moreover, it plays really well with Blazor and works on MAUI.

Curious to see Fusion in action? Explore Actual Chat – a very new chat app built by the minds behind Fusion.

Actual Chat fuses real-time audio, live transcription, and AI assistance to let you communicate with utmost efficiency. With clients for WebAssembly, iOS, Android, and Windows, it boasts nearly 100% code sharing across these platforms. Beyond real-time updates, several of its features, like offline mode, are powered by Fusion.

We're posting some code examples from Actual Chat codebase here, so join this chat to learn how we use it in a real app.

Fusion allows you to build real-time UIs like this one — and it's nearly as easy as if there were no logic related to real-time updates at all:

Play with live version of this sample right now!

Running Samples

Build & run locally with .NET 8.0 SDK:

# Run this command first
dotnet build
Sample Command
HelloCart dotnet run -p src/HelloCart/HelloCart.csproj
HelloWorld dotnet run -p src/HelloWorld/HelloWorld.csproj
HelloBlazorServer dotnet run -p src/HelloBlazorServer/HelloBlazorServer.csproj + open http://localhost:5005/
HelloBlazorHybrid dotnet run -p src/HelloBlazorHybrid/Server/Server.csproj + open http://localhost:5005/
Blazor Samples dotnet run -p src/Blazor/Server/Server.csproj + open http://localhost:5005/
MiniRpc dotnet run -p src/MiniRpc/MiniRpc.csproj
MultiServerRpc dotnet run -p src/MultiServerRpc/MultiServerRpc.csproj
Benchmark dotnet run -c:Release -p src/Benchmark/Benchmark.csproj
RpcBenchmark dotnet run -c:Release -p src/RpcBenchmark/RpcBenchmark.csproj
Tutorial Install Try .NET + dotnet try --port 50005 docs/tutorial

Build & run with Docker + Docker Compose:

# Run this command first
docker-compose build
Sample Command
HelloCart docker-compose run sample_hello_cart dotnet Samples.HelloCart.dll
HelloWorld docker-compose run sample_hello_world dotnet Samples.HelloWorld.dll
HelloBlazorServer docker-compose run --service-ports sample_hello_blazor_server + open http://localhost:5005/
HelloBlazorHybrid docker-compose run --service-ports sample_hello_blazor_hybrid + open http://localhost:5005/
Blazor Samples docker-compose run --service-ports sample_blazor + open http://localhost:5005/
MiniRpc docker-compose run sample_mini_rpc dotnet Samples.MiniRpc.dll
MultiServerRpc docker-compose run sample_multi_server_rpc dotnet Samples.MultiServerRpc.dll
Benchmark docker-compose run sample_benchmark dotnet Samples.Benchmark.dll
RpcBenchmark docker-compose run sample_rpc_benchmark dotnet Samples.RpcBenchmark.dll
Tutorial docker-compose run --service-ports tutorial + open https://localhost:50005/README.md

A detailed description of nearly every sample can be found here: https://servicetitan.github.io/Stl.Fusion.Samples/

Useful Links

P.S. If you've already spent some time learning about Fusion, please help us to make it better by completing Fusion Feedback Form (1…3 min).

stl.fusion.samples's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

stl.fusion.samples's Issues

Adding Duende Identity Server Open ID Connect Blazor authentication to To Do template does not work as expected and freezes browser.

Hi Alex,
I've followed the recommended Duende Blazor BFF code sample to add Identity Server Open ID Connect authentication to the To Do template.

Whilst the OIDC add-on should be standard, there seems to be some incompatibilities with Fusion that cause this to fail. It does recognise the OIDC but attempting to select this will pop up this page and freeze the browser for the original page.
image

image

I did get it to partially work by completely replacing the your services.AddAuthentication with the sample BFF code but navigating to /bff/login instead to login - this opens the Duende demo Identity Server auth page and you can log in with bob/bob or alice/alice. On return to Todo, it does not immediately recognise the login was successful. The /authentication page is unchanged:
image

I added the BFF equivalent auth status page and on navigating to this it now recognises the login:
image

and then navigating back to your /authentication page it is now recognised there too:
image

The To Do app now functions as expected. I'd appreciate if you could please have a quick look to see why it is misbehaving. I have a copy of it available here .

Thanks!

ServerTime.razor

Stl.Fusion.Samples/src/Blazor/Client/Pages/ServerTime.razor contains a refresh button, which pretends to be able to invalidate the state, before the AutoInvalidateTime invalidates it on the server side. However, this is not working due to the reasons you mentioned on https://gitter.im/Stl-Fusion/community

Suggestion: Minimal Blazor wasm example

I think it would be very helpful to have a minimal blazor wasm example.
Pages to cover: /counter and /weatherforecast (both with EFCore)
So: No specials (even custom logging), just the default wasm boilerplate with a minimal implementation of Stl.Fusion

The documentation and samples give a very deep insight, which might be too much to see how easy the implementation really can be.

HelloCart - Samples 4 & 5 exceptions

Running fresh clone of the HelloCart sample fails for options 4 & 5..
I kept changing the port to try fix 5 but it fails with the new port number.. Was running in VS2022 on Windows.

4:

dotnet run --project src/HelloCart/HelloCart.csproj
Select the implementation to use:
  1: ConcurrentDictionary-based
  2: EF Core + Operations Framework (OF)
  3: EF Core + OF + DbEntityResolvers (pipelined fetches)
  4: EF Core + OF + DbEntityResolvers + Client-Server
  5: EF Core + OF + DbEntityResolvers + Client-Server + Multi-Host
Type 1..5: 4
Initial state:

Change product price by typing [productId]=[price], e.g. "apple=0".
See the total of every affected cart changes.

[productId]=[price]: apple=20
Error: No publication state info was found. Typically this indicates you're hitting a wrong endpoint (check your client definition interface) or forgot to add [Publish] attribute to the controller's method.

5:

 dotnet run --project src/HelloCart/HelloCart.csproj
Select the implementation to use:
  1: ConcurrentDictionary-based
  2: EF Core + Operations Framework (OF)
  3: EF Core + OF + DbEntityResolvers (pipelined fetches)
  4: EF Core + OF + DbEntityResolvers + Client-Server
  5: EF Core + OF + DbEntityResolvers + Client-Server + Multi-Host
Type 1..5: 5
fail: Stl.Fusion.Operations.OperationCompletionNotifier[0]
      Error in operation completion handler of type 'Stl.Fusion.Operations.Internal.CompletionProducer'
      Newtonsoft.Json.JsonSerializationException: Unable to find a constructor to use for type Samples.HelloCart.EditCommand`1[Samples.HelloCart.Cart]. A class should either have a default constructor, one constructor with arguments or a constructor marked with the JsonConstructor attribute. Path 'Id', line 1, position 112.
         at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateNewObject(JsonReader reader, JsonObjectContract objectContract, JsonProperty containerMember, JsonProperty containerProperty, String id, Boolean& createdFromNonDefaultCreator)
         at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
         at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
         at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
         at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
         at Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader reader, Type objectType)
         at Newtonsoft.Json.JsonSerializer.Deserialize(TextReader reader, Type objectType)
         at Stl.Serialization.NewtonsoftJsonSerializer.Read(String data, Type type)
         at Stl.Serialization.Internal.CastingTextSerializer`1.Read(String data)
         at Stl.Serialization.TextSerialized`1.Deserialize()
         at Stl.Serialization.TextSerialized`1.get_Value()
         at Stl.Fusion.EntityFramework.Operations.DbOperation.get_Command()
         at Stl.Fusion.Operations.Internal.CompletionProducer.OnOperationCompleted(IOperation operation)
         at Stl.Fusion.Operations.OperationCompletionNotifier.<>c__DisplayClass29_0.<<NotifyCompleted>b__0>d.MoveNext()
fail: Stl.Fusion.Operations.OperationCompletionNotifier[0]
      Error in operation completion handler of type 'Stl.Fusion.Operations.Internal.CompletionProducer'
      Newtonsoft.Json.JsonSerializationException: Unable to find a constructor to use for type Samples.HelloCart.EditCommand`1[Samples.HelloCart.Product]. A class should either have a default constructor, one constructor with arguments or a constructor marked with the JsonConstructor attribute. Path 'Id', line 1, position 115.
         at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateNewObject(JsonReader reader, JsonObjectContract objectContract, JsonProperty containerMember, JsonProperty containerProperty, String id, Boolean& createdFromNonDefaultCreator)
         at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
         at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
         at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
         at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
         at Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader reader, Type objectType)
         at Newtonsoft.Json.JsonSerializer.Deserialize(TextReader reader, Type objectType)
         at Stl.Serialization.NewtonsoftJsonSerializer.Read(String data, Type type)
         at Stl.Serialization.Internal.CastingTextSerializer`1.Read(String data)
         at Stl.Serialization.TextSerialized`1.Deserialize()
         at Stl.Serialization.TextSerialized`1.get_Value()
         at Stl.Fusion.EntityFramework.Operations.DbOperation.get_Command()
         at Stl.Fusion.Operations.Internal.CompletionProducer.OnOperationCompleted(IOperation operation)
         at Stl.Fusion.Operations.OperationCompletionNotifier.<>c__DisplayClass29_0.<<NotifyCompleted>b__0>d.MoveNext()
fail: Stl.Fusion.Operations.OperationCompletionNotifier[0]
      Error in operation completion handler of type 'Stl.Fusion.Operations.Internal.CompletionProducer'
      Newtonsoft.Json.JsonSerializationException: Unable to find a constructor to use for type Samples.HelloCart.EditCommand`1[Samples.HelloCart.Product]. A class should either have a default constructor, one constructor with arguments or a constructor marked with the JsonConstructor attribute. Path 'Id', line 1, position 115.
         at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateNewObject(JsonReader reader, JsonObjectContract objectContract, JsonProperty containerMember, JsonProperty containerProperty, String id, Boolean& createdFromNonDefaultCreator)
         at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
         at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
         at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
         at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
         at Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader reader, Type objectType)
         at Newtonsoft.Json.JsonSerializer.Deserialize(TextReader reader, Type objectType)
         at Stl.Serialization.NewtonsoftJsonSerializer.Read(String data, Type type)
         at Stl.Serialization.Internal.CastingTextSerializer`1.Read(String data)
         at Stl.Serialization.TextSerialized`1.Deserialize()
         at Stl.Serialization.TextSerialized`1.get_Value()
         at Stl.Fusion.EntityFramework.Operations.DbOperation.get_Command()
         at Stl.Fusion.Operations.Internal.CompletionProducer.OnOperationCompleted(IOperation operation)
         at Stl.Fusion.Operations.OperationCompletionNotifier.<>c__DisplayClass29_0.<<NotifyCompleted>b__0>d.MoveNext()
fail: Stl.Fusion.Operations.OperationCompletionNotifier[0]
      Error in operation completion handler of type 'Stl.Fusion.Operations.Internal.CompletionProducer'
      Newtonsoft.Json.JsonSerializationException: Unable to find a constructor to use for type Samples.HelloCart.EditCommand`1[Samples.HelloCart.Cart]. A class should either have a default constructor, one constructor with arguments or a constructor marked with the JsonConstructor attribute. Path 'Id', line 1, position 112.
         at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateNewObject(JsonReader reader, JsonObjectContract objectContract, JsonProperty containerMember, JsonProperty containerProperty, String id, Boolean& createdFromNonDefaultCreator)
         at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
         at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
         at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
         at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
         at Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader reader, Type objectType)
         at Newtonsoft.Json.JsonSerializer.Deserialize(TextReader reader, Type objectType)
         at Stl.Serialization.NewtonsoftJsonSerializer.Read(String data, Type type)
         at Stl.Serialization.Internal.CastingTextSerializer`1.Read(String data)
         at Stl.Serialization.TextSerialized`1.Deserialize()
         at Stl.Serialization.TextSerialized`1.get_Value()
         at Stl.Fusion.EntityFramework.Operations.DbOperation.get_Command()
         at Stl.Fusion.Operations.Internal.CompletionProducer.OnOperationCompleted(IOperation operation)
         at Stl.Fusion.Operations.OperationCompletionNotifier.<>c__DisplayClass29_0.<<NotifyCompleted>b__0>d.MoveNext()
fail: Stl.Fusion.Operations.OperationCompletionNotifier[0]
      Error in operation completion handler of type 'Stl.Fusion.Operations.Internal.CompletionProducer'
      Newtonsoft.Json.JsonSerializationException: Unable to find a constructor to use for type Samples.HelloCart.EditCommand`1[Samples.HelloCart.Product]. A class should either have a default constructor, one constructor with arguments or a constructor marked with the JsonConstructor attribute. Path 'Id', line 1, position 115.
         at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateNewObject(JsonReader reader, JsonObjectContract objectContract, JsonProperty containerMember, JsonProperty containerProperty, String id, Boolean& createdFromNonDefaultCreator)
         at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
         at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
         at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
         at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
         at Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader reader, Type objectType)
         at Newtonsoft.Json.JsonSerializer.Deserialize(TextReader reader, Type objectType)
         at Stl.Serialization.NewtonsoftJsonSerializer.Read(String data, Type type)
         at Stl.Serialization.Internal.CastingTextSerializer`1.Read(String data)
         at Stl.Serialization.TextSerialized`1.Deserialize()
         at Stl.Serialization.TextSerialized`1.get_Value()
         at Stl.Fusion.EntityFramework.Operations.DbOperation.get_Command()
         at Stl.Fusion.Operations.Internal.CompletionProducer.OnOperationCompleted(IOperation operation)
         at Stl.Fusion.Operations.OperationCompletionNotifier.<>c__DisplayClass29_0.<<NotifyCompleted>b__0>d.MoveNext()
fail: Stl.Fusion.Operations.OperationCompletionNotifier[0]
      Error in one of operation completion handlers
      System.ArgumentException: The tasks argument included a null value. (Parameter 'tasks')
         at System.Threading.Tasks.Task.WhenAll(Task[] tasks)
         at Stl.Fusion.Operations.OperationCompletionNotifier.<>c__DisplayClass29_0.<<NotifyCompleted>b__0>d.MoveNext()
fail: Stl.Fusion.Operations.OperationCompletionNotifier[0]
      Error in one of operation completion handlers
      System.ArgumentException: The tasks argument included a null value. (Parameter 'tasks')
         at System.Threading.Tasks.Task.WhenAll(Task[] tasks)
         at Stl.Fusion.Operations.OperationCompletionNotifier.<>c__DisplayClass29_0.<<NotifyCompleted>b__0>d.MoveNext()
fail: Stl.Fusion.Operations.OperationCompletionNotifier[0]
      Error in one of operation completion handlers
      System.ArgumentException: The tasks argument included a null value. (Parameter 'tasks')
         at System.Threading.Tasks.Task.WhenAll(Task[] tasks)
         at Stl.Fusion.Operations.OperationCompletionNotifier.<>c__DisplayClass29_0.<<NotifyCompleted>b__0>d.MoveNext()
fail: Stl.Fusion.Operations.OperationCompletionNotifier[0]
      Error in one of operation completion handlers
      System.ArgumentException: The tasks argument included a null value. (Parameter 'tasks')
         at System.Threading.Tasks.Task.WhenAll(Task[] tasks)
         at Stl.Fusion.Operations.OperationCompletionNotifier.<>c__DisplayClass29_0.<<NotifyCompleted>b__0>d.MoveNext()
fail: Stl.Fusion.Operations.OperationCompletionNotifier[0]
      Error in one of operation completion handlers
      System.ArgumentException: The tasks argument included a null value. (Parameter 'tasks')
         at System.Threading.Tasks.Task.WhenAll(Task[] tasks)
         at Stl.Fusion.Operations.OperationCompletionNotifier.<>c__DisplayClass29_0.<<NotifyCompleted>b__0>d.MoveNext()
Unhandled exception. System.IO.IOException: Failed to bind to address https://127.0.0.1:58221: address already in use.
 ---> Microsoft.AspNetCore.Connections.AddressInUseException: Only one usage of each socket address (protocol/network address/port) is normally permitted.
 ---> System.Net.Sockets.SocketException (10048): Only one usage of each socket address (protocol/network address/port) is normally permitted.
   at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, String callerName)
   at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
   at System.Net.Sockets.Socket.Bind(EndPoint localEP)
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.CreateDefaultBoundListenSocket(EndPoint endpoint)
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind()
   --- End of inner exception stack trace ---
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind()
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory.BindAsync(EndPoint endpoint, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TransportManager.BindAsync(EndPoint endPoint, ConnectionDelegate connectionDelegate, EndpointConfig endpointConfig, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.<>c__DisplayClass30_0`1.<<StartAsync>g__OnBind|0>d.MoveNext()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.LocalhostListenOptions.BindAsync(AddressBindContext context, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.AddressesStrategy.BindAsync(AddressBindContext context, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindAsync(IEnumerable`1 listenOptions, AddressBindContext context, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.BindAsync(CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.StartAsync[TContext](IHttpApplication`1 application, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
   at Samples.HelloCart.V5.AppV5.InitializeAsync() in C:\Data\git\Stl.Fusion.Samples-master\Stl.Fusion.Samples-master\src\HelloCart\v5\AppV5.cs:line 26
   at Program.<Main>$(String[] args) in C:\Data\git\Stl.Fusion.Samples-master\Stl.Fusion.Samples-master\src\HelloCart\Program.cs:line 40
   at Program.<Main>$(String[] args) in C:\Data\git\Stl.Fusion.Samples-master\Stl.Fusion.Samples-master\src\HelloCart\Program.cs:line 78
   at Program.<Main>(String[] args)

Update error: Endpoint not found: 'ICounterService.Get:1'.

When I run HelloBlazorHybrid, the Blazor Server works as expected. However, when I switch to Blazor WASM, I get errors that look like this:

Update error: Endpoint not found: 'ICounterService.Get:1'.

Is this a bug? Am I missing some build step maybe?

Thank you for taking the time to read this, and I appreciate the work on the library! <3

Screenshot 2023-08-16 at 2 59 09 PM

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.