SignalR : System.ObjectDisposedException (타이머 포함)

Naografix

나는 signalR을 가지고 놀고 있고 2 초마다 클라이언트에게 작은 메시지를 보내고 싶습니다. 그래서이 튜토리얼을 따랐고 채팅에 잘 작동합니다. 이제 타이머를 구현하고 싶습니다. 그런 다음 이것을 만들었습니다 ( ASP.NET .NET Core 3.1 ).

public ChatHub()
{
    Debug.WriteLine("hello");
    var timer1 = new Timer();
    timer1.Elapsed += this.Timer1_Elapsed;
    timer1.Interval = 2000;
    timer1.Start();
}

private async void Timer1_Elapsed(object sender, ElapsedEventArgs e)
{
    Debug.WriteLine("tick");
    await SendMessage("user", "hello");
}

public async Task SendMessage(string user, string message)
{
    await Clients.All.SendAsync("ReceiveMessage", user, message);
}

그러나 매번이 오류가 발생합니다 ( this.Clients.Add ... ).

System.ObjectDisposedException : 삭제 된 개체에 액세스 할 수 없습니다.

그리고 나는 왜인지 이해하지 못하고 스택 오버플로를 확인하고 몇 가지 해결책을 시도했지만 이미 멈췄습니다.

도와 주셔서 감사합니다.


샘플 : https://github.com/Naografix/SignalRProblem

Stacktrace :

Message = "Cannot access a disposed object.\r\nObject name: 'HomeHub'."
at Microsoft.AspNetCore.SignalR.Hub.CheckDisposed()
at Microsoft.AspNetCore.SignalR.Hub.get_Clients()
at ****.HomeHub.<Timer1_Elapsed>d__1.MoveNext() in *****.Api\Hubs\HomeHub.cs:line 32

여기에 이미지 설명 입력

Naografix

여기에서 볼 수 있습니다 .

허브 클래스의 속성에 상태를 저장하지 마십시오. 모든 허브 메서드 호출은 새 허브 인스턴스에서 실행됩니다.

그래서 허브 용 서비스 생성 방법을 검색하기로했습니다. 이것이 미디엄 이하는 일입니다. (튜토리얼에 많은 것이 누락 되었기 때문에 솔루션을 다운로드하십시오)

내 허브에 타이머를 만드는 것은 잘못된 접근 이었습니다.

해결되었습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

함수 결과와 함께 키워드를 사용하면 System.ObjectDisposedException이 발생합니다.

분류에서Dev

Docker 컨테이너의 .net Core 콘솔 애플리케이션에서 System.ObjectDisposedException이 발생 함

분류에서Dev

IIS 10 및 ARR 3.0이 포함 된 SignalR

분류에서Dev

.net 코어 IsInRoleAsync 'System.ObjectDisposedException'

분류에서Dev

Grand Central Dispatch가 포함 된 타이머

분류에서Dev

System 사용의 간단한 예. 타이머. C #의 타이머

분류에서Dev

System.ObjectDisposedException: The ObjectContext instance has been disposed and can no longer be

분류에서Dev

SlidingMenuSharp System.ObjectDisposedException : 삭제 된 개체에 액세스 할 수 없습니다. 개체 이름 : 'Android.Widget.Scroller'

분류에서Dev

퀴즈 앱에 "타이머 제어"를 포함하는 방법

분류에서Dev

TidHTTPServer.OnCommandGet 내부에 개체 (타이머 포함) 생성이 실패 함

분류에서Dev

SHGetFileInfo에서 폴더에 대해 검색된 아이콘을 사용하려고 할 때 System.Drawing.dll의 'System.ObjectDisposedException'

분류에서Dev

Azure 함수 타이머 트리거

분류에서Dev

타이머 함수 내 Matlab urlread 오류

분류에서Dev

타이머 PHP로 함수 생성

분류에서Dev

System.Web.WebSocket 대 SignalR

분류에서Dev

배포시 Azure 함수 타이머 트리거가 트리거되지 않음

분류에서Dev

전자 메일 System.ObjectDisposedException에 보내기에서 FileStream 첨부

분류에서Dev

몇 초 동안 기다리지 않을 때 System.ObjectDisposedException

분류에서Dev

Ninject가 포함 된 SignalR이 허브 종속성 주입을 중지했습니다.

분류에서Dev

C #, SYSTEM.IO에 스트림이 포함되지 않음

분류에서Dev

System.ObjectDisposedException : 'ObjectContext 인스턴스가 삭제되었으며 연결이 필요한 작업에 더 이상 사용할 수 없습니다.'

분류에서Dev

카운트 다운 타이머 system.timers 문제 xamarin 양식

분류에서Dev

System.Fabric.FabricNotPrimaryException 타이머에서 상태를 저장할 때

분류에서Dev

System.Reactive로 재설정 가능한 타이머

분류에서Dev

함수의 타이머 새로 고침 페이지

분류에서Dev

내 타이머가 0이되면 함수를 호출 해

분류에서Dev

타이머 루프 중 Android 앱이 충돌 함

분류에서Dev

Visual Studio 2013이 포함 된 Crystal Report aspnet_client / system_web / 4_6_81

분류에서Dev

Python- tkinter의 "after"를 포함하지 않는 백그라운드 타이머 프로세스 생성

Related 관련 기사

  1. 1

    함수 결과와 함께 키워드를 사용하면 System.ObjectDisposedException이 발생합니다.

  2. 2

    Docker 컨테이너의 .net Core 콘솔 애플리케이션에서 System.ObjectDisposedException이 발생 함

  3. 3

    IIS 10 및 ARR 3.0이 포함 된 SignalR

  4. 4

    .net 코어 IsInRoleAsync 'System.ObjectDisposedException'

  5. 5

    Grand Central Dispatch가 포함 된 타이머

  6. 6

    System 사용의 간단한 예. 타이머. C #의 타이머

  7. 7

    System.ObjectDisposedException: The ObjectContext instance has been disposed and can no longer be

  8. 8

    SlidingMenuSharp System.ObjectDisposedException : 삭제 된 개체에 액세스 할 수 없습니다. 개체 이름 : 'Android.Widget.Scroller'

  9. 9

    퀴즈 앱에 "타이머 제어"를 포함하는 방법

  10. 10

    TidHTTPServer.OnCommandGet 내부에 개체 (타이머 포함) 생성이 실패 함

  11. 11

    SHGetFileInfo에서 폴더에 대해 검색된 아이콘을 사용하려고 할 때 System.Drawing.dll의 'System.ObjectDisposedException'

  12. 12

    Azure 함수 타이머 트리거

  13. 13

    타이머 함수 내 Matlab urlread 오류

  14. 14

    타이머 PHP로 함수 생성

  15. 15

    System.Web.WebSocket 대 SignalR

  16. 16

    배포시 Azure 함수 타이머 트리거가 트리거되지 않음

  17. 17

    전자 메일 System.ObjectDisposedException에 보내기에서 FileStream 첨부

  18. 18

    몇 초 동안 기다리지 않을 때 System.ObjectDisposedException

  19. 19

    Ninject가 포함 된 SignalR이 허브 종속성 주입을 중지했습니다.

  20. 20

    C #, SYSTEM.IO에 스트림이 포함되지 않음

  21. 21

    System.ObjectDisposedException : 'ObjectContext 인스턴스가 삭제되었으며 연결이 필요한 작업에 더 이상 사용할 수 없습니다.'

  22. 22

    카운트 다운 타이머 system.timers 문제 xamarin 양식

  23. 23

    System.Fabric.FabricNotPrimaryException 타이머에서 상태를 저장할 때

  24. 24

    System.Reactive로 재설정 가능한 타이머

  25. 25

    함수의 타이머 새로 고침 페이지

  26. 26

    내 타이머가 0이되면 함수를 호출 해

  27. 27

    타이머 루프 중 Android 앱이 충돌 함

  28. 28

    Visual Studio 2013이 포함 된 Crystal Report aspnet_client / system_web / 4_6_81

  29. 29

    Python- tkinter의 "after"를 포함하지 않는 백그라운드 타이머 프로세스 생성

뜨겁다태그

보관