Déterminez si SQLDEPEpendency.Start (ConnectionString) a été appelé dans le projet actuel?

StackOverflow https://stackoverflow.com/questions/8971852

Question

Nos applications utilisent de nombreux composants partagés. Certains d'entre eux n'ont pas besoin de mise en cache, par exemple, les services Windows qui traitent les e-mails non matriciels. Vous ne cacheriez jamais cet ensemble de résultats ...

Le problème est que, puisque notre couche de données partagée a été modifiée pour utiliser SQLCacheDePedency, nos services qui ne démarrent pas SQLDEpendency échouent sur les appels de base de données où la couche de données demande un objet SQLCachedependency.

Ce qui mène à la question - existe-t-il un moyen pour nos classes de données de tester si le service de courtier écoute (c'est-à-dire: SQLDEPEPEDENCY.Start (ConnectionString) a-t-il été appelé)?

L'objet SQLDEpendency lui-même n'a pas de propriété activée ou similaire. Y a-t-il un moyen de forcer l'application d'appel à raconter La couche de données que SQLCaching est utilisée pour la couche de données pour déterminer l'état?

Était-ce utile?

La solution

À peu près la réponse est non. Nous avons fini par ajouter une variable de configuration que si FALSE ou NON Présent, fait sauter la demande de la demande.

Autres conseils

Sélectionnez * FROM SYS.SERVICE_QUEUES où le nom comme «SqlQueryNotifications Service -%»

Renvoie un «SqlQueryNotifications Service- [Some Guid]»

Et si vous regardez profondément dans les membres non publics du SQLDEpendency _ServerUserhash lors de la débogage dans l'IDE, vous trouverez une collection qui contient la même entrée. Si Microsoft serait au point d'exposer cela, alors oui.

Dans mon cas, j'ai une bibliothèque de classe qui est utilisée par certaines applications Web. Je n'ai donc pas app.config. J'utilise également le SQLCachedependency dans un événement statique. J'utilise donc un booléen statique comme:

if (!isCachingEnabled)
  isCachingEnabled = SqlDependency.Start(builder.ProviderConnectionString);

Jusqu'à présent, je fonctionne, mais je suis ouvert aux suggestions lors de l'utilisation de bibliothèques de classe.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top