2017-08-11 13 views
0

こんにちは、エンティティフレームワークで10分ごとにデータベースに接続するためにWindowsサービスをC#で作成しました。デバッグモードでうまく動作しますが、ローカルシステムアカウント例外をスローします。ウィンドウサービスC#で - 基礎プロバイダがオープンに失敗しました

オープンしているプロバイダが失敗しました。 ログインで要求されたデータベース "HCClient"を開くことができません。ログインに失敗しました。 ユーザー 'NT AUTHORITY \ SYSTEM'のログインに失敗しました。

私たconnectionString:

名= "MyDataBaseName" たconnectionString = "メタデータ= resを追加:// /Model.LocalModel.csdl|res:// /Model.LocalModel.ssdlを|最初のカタログ= HCClient;統合セキュリティ= True; MultipleActiveResultSets = True; App = EntityFramework "「providerName」という名前のプロバイダ名を使用します。 = "System.Data.EntityClient"

ローカルサービスまたはネットワークサービスでサービスを開始するときにエラー5が返されます。実行可能サービスexeにこれらのアクセス許可の1つを与えたにもかかわらず、アクセスが拒否されました 私のエラーに関するすべてのトピックを読みましたが、それらは、データベースにログオンする権限を持っている任意のヘルプは

+0

どのようにSQLログインを作成し、接続文字列でそれを使用するでしょうか? –

+0

サービスが実行されているアカウントの識別情報を使用しようとしている接続文字列で、統合セキュリティをtrueに設定する必要があります。 DBにアクセスできる同じアカウントでサービスを実行するか、接続文字列でSQL認証を使用してください。 – vendettamit

答えて

1

あなたのサービスにはないSystemユーザーとして実行されている(とすべきでない)いただければ幸いです

を働きます。

SQLログインを作成し、その資格情報を接続文字列に追加するか、サービスをデータベースにログインする権限を持つユーザーとして実行します。 - サービスのプロパティで

> [ログオン]タブ、アカウントを変更:enter image description here

+0

それは働いた、ありがとう –

関連する問題