用RemotingConfiguration.RegisterWellKnownServiceType()
註冊一個.net遠程服務之後,有什麼辦法可以撤銷這個,以免應用程序不再提供這個服務嗎?如何撤消RemotingConfiguration.RegisterWellKnownServiceType()?
我檢查了這個link但令人驚訝的是,似乎並沒有UnregisterWellKnownServiceType-Method。
用RemotingConfiguration.RegisterWellKnownServiceType()
註冊一個.net遠程服務之後,有什麼辦法可以撤銷這個,以免應用程序不再提供這個服務嗎?如何撤消RemotingConfiguration.RegisterWellKnownServiceType()?
我檢查了這個link但令人驚訝的是,似乎並沒有UnregisterWellKnownServiceType-Method。
如果你註冊你的公知類型的辛格爾頓,你可以使用:
RemotingServices.Disconnect(foo);
但首先你必須創建對象,然後元帥它,而不是使用RegisterWellKnownServiceType:
Foo foo = new Foo();
RemotingServices.Marshal(foo, uri);
如果您將您熟知的類型註冊爲SingleCall,則無法完成此操作。
hmm。 RemotingConfiguration.RegisterWellKnownServiceType()和RemotingServices.Marshal()有什麼區別嗎?爲什麼RemotingConfiguration.RegisterWellKnownServiceType()在RemotingServices.Marshal可以執行相同的+斷開連接時存在? – marc40000 2013-04-15 09:16:55
@ marc40000使用RegisterWellKnownServiceType對象將不會被創建,直到客戶端首先詢問它時,纔會將其留給.NET框架來完成工作。元帥基本上給你更多的控制,並允許你註冊一個現有的遠程實例,然後在需要時斷開連接。 – 2013-04-15 20:37:27
我在我的項目中切換到RemotingServices.Marshal()。現在我遇到了以下問題:當服務器運行一段時間而沒有任何連接,然後客戶端嘗試連接時,它表示服務器不再託管所請求的服務。在服務器啓動後立即連接客戶端時,它可以正常工作。不知何故,在一段時間後自動移除Mashaled服務? – marc40000 2013-04-23 13:03:26
你爲什麼要這麼做? – 2013-04-10 10:59:32