castleproject / Core

Castle Core, including Castle DynamicProxy, Logging Services and DictionaryAdapter
http://www.castleproject.org/
Other
2.2k stars 467 forks source link

Why TransactionInterceptor.Intercept run at the client #653

Closed zhongkeruanjiansunny closed 1 year ago

zhongkeruanjiansunny commented 1 year ago

i used Core 4.4.0.0 / Windsor 5.0 /Castle.Facilities.Remoting/Castle.Facilities.AutoTx, when i call a service's method at the client, TransactionInterceptor.Intercept will run at the client , if client crash , it cause the transaction forever hang-up !

i am a castle's very very old user ,when i used windsor 1.0 , i see the component is marshaled like this:

ISystemProfileServiceProxycc2a3eaa289642139e8df6b1d748bfd0 is marshaled at 15:24 gvILMS.Foundation.Business.SystemProfileService is marshaled at 15:24

but now the component is marshaled like this:

gvILMS.Foundation.Business.SystemProfileService is marshaled at 15:24

it's seem castle don't generate a proxy no longer in Core 4.4.0.0 ...

forgive me so poor english, who can give some advise,please

stakx commented 1 year ago

@zhongkeruanjiansunny, those two facilities have been deprecated many years ago. (You can find their source code over at our other GitHub organization castleproject-deprecated.)

Realistically speaking, if they no longer work with recent versions of DynamicProxy or Windsor, there's nothing we are going to do. The two facilities were likely deprecated for good reason, and it does not seem worth the effort to update them.

I suggest you either downgrade DynamicProxy / Windsor to older versions, or (better:) update your code so that it no longer depends on these deprecated libraries.

zhongkeruanjiansunny commented 1 year ago

@stakx thank you give me reply , I found the reason ,it's cause by proxyOptions.UseMarshalByRefAsBaseClass! when i set the true,it's worked same with windsor 1.0!