je commence à l'exception suivante lorsque je tente de démarrer nservicebus.host.exe avec des informations d'identification de compte de service:compte de service lancer SQLiteException au démarrage NServiceBus
Database was not configured through Database method.
System.Data.SQLite.SQLiteException: Unable to open the database file
at System.Data.SQLite.SQLite3.Open(String strFilename, SQLiteOpenFlagsEnum flags, Int32 maxPoolSize, Boolean usePool)
at System.Data.SQLite.SQLiteConnection.Open()
at NHibernate.Connection.DriverConnectionProvider.GetConnection() in :line 0
at NHibernate.Tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.Prepare() in :line 0
at NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.GetReservedWords(Dialect dialect, IConnectionHelper connectionHelper) in :line 0
at NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.Update(ISessionFactory sessionFactory) in :line 0
at NHibernate.Impl.SessionFactoryImpl..ctor(Configuration cfg, IMapping mapping, Settings settings, EventListeners listeners) in :line 0
at FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory() in D:\dev\fluent-nhibernate\src\FluentNHibernate\Cfg\FluentConfiguration.cs:line 93
--- End of inner exception stack trace ---
at FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory() in D:\dev\fluent-nhibernate\src\FluentNHibernate\Cfg\FluentConfiguration.cs:line 100
at NServiceBus.SagaPersisters.NHibernate.Config.Internal.SessionFactoryBuilder.Build(IDictionary^2 nhibernateProperties, Boolean updateSchema) in c:\Dev\DotNet\NServiceBus\src\impl\SagaPersisters\NHibernateSagaPersister\NServiceBus.SagaPersisters.NHibernate.Config\Internal\SessionFactoryBuilder.cs:line 48
--- End of inner exception stack trace ---
at NServiceBus.SagaPersisters.NHibernate.Config.Internal.SessionFactoryBuilder.Build(IDictionary^2 nhibernateProperties, Boolean updateSchema) in c:\Dev\DotNet\NServiceBus\src\impl\SagaPersisters\NHibernateSagaPersister\NServiceBus.SagaPersisters.NHibernate.Config\Internal\SessionFactoryBuilder.cs:line 55
at NServiceBus.ConfigureNHibernateSagaPersister.NHibernateSagaPersister(Configure config, IDictionary^2 nhibernateProperties, Boolean autoUpdateSchema) in c:\Dev\DotNet\NServiceBus\src\impl\SagaPersisters\NHibernateSagaPersister\NServiceBus.SagaPersisters.NHibernate.Config\ConfigureNHibernateSagaPersister.cs:line 80
at Ibfx.BackOffice.Services.NewAccounts.NewAccountsEndpoint.Init() in C:\Dev\TFS\Omega\Src\Svcs\NewAccounts\Src\Service\NewAccountsEndpoint.cs:line 67
at NServiceBus.Host.Internal.GenericHost.Start() in c:\Dev\DotNet\NServiceBus\src\host\NServiceBus.Host\Internal\GenericHost.cs:line 56
Tout fonctionne bien si je lance l'hôte en utilisant mon propre compte, mais si j'exécute l'hôte en tant que service avec des informations d'identification de domaine ou si j'utilise ces mêmes informations d'identification avec la commande RunAs, j'obtiens l'exception ci-dessus. Quelles sont les autorisations que je dois configurer pour que le service fonctionne?
Voici ma config:
var configure = NServiceBus.Configure.With()
.Log4Net<Log4NetLoggerAdapter>(a => { })
.UnityBuilder(container)
.XmlSerializer()
.RijndaelEncryptionService()
.MsmqTransport()
.IsTransactional(false)
.PurgeOnStartup(false)
.MsmqSubscriptionStorage();
configure.Configurer.ConfigureComponent<MsmqSubscriptionStorage>(
ComponentCallModelEnum.None).ConfigureProperty(p => p.DontUseExternalTransaction
, true
);
IBus bus = configure.UnicastBus()
.ImpersonateSender(true)
.LoadMessageHandlers()
.Sagas()
.NHibernateSagaPersister()
.CreateBus()
.Start();
Et j'ai un fichier NServiceBus.Host.exe.config avec les éléments suivants:
< xml version = "1.0" encoding = "utf-8" ? > <configuration> < démarrage useLegacyV2RuntimeActivationPolicy = "true" > < version supportedRuntime = "v4.0"/> </démarrage > </configuration >
définitivement un problème d'autorisations, j'ai ajouté le compte de service au groupe administrateur local et tout fonctionne correctement. Quelqu'un sait quelles autorisations je dois définir? –
lorsque je révoque les autorisations d'administration, mais accorder le contrôle total à l'utilisateur sur le dossier, je reçois l'erreur "tentative d'écriture dans la base de données readonly". BTW le service est installé dans le répertoire "Program Folders". Cependant, il a été installé pour fonctionner en tant que service et j'ai vérifié qu'il a l'autorisation de "se connecter en tant que service". –