2016-05-15 9 views
0

EntityFramework6とEntityFramework6用のNpgsqlがインストールされていることを考慮してください。 Windowsサービス用のpackages.configとApp.configを考えてください。Windowsサービス用のNpgsql EntityFramwork構成

のInnerException = {「指定されたファイルが見つかりません」}データベースコンテキストへの接続試行が例外をスロー

「ネットワーク関連またはinstance-:私は例外次取得データベースにアクセスしようとするとSQL Serverへの接続の確立中に特定のエラーが発生しましたサーバーが見つからないかアクセスできないインスタンス名が正しいこととSQL Serverがリモート接続を許可するように構成されていることを確認します(プロバイダ: SQL Serverへの接続を開くことができませんでした。 "

packages.config:
<?xml version="1.0" encoding="utf-8"?> <packages> <package id="EntityFramework" version="6.1.3" targetFramework="net45" /> <package id="EntityFramework6.Npgsql" version="3.0.7" targetFramework="net45" /> <package id="Npgsql" version="3.0.7" targetFramework="net45" /> </packages>

App.configファイル:

<?xml version="1.0" encoding="utf-8"?> 
    <configuration> 
     <configSections> 
     <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
     <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
     <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
     </configSections> 
     <startup> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
     </startup> 
     <entityFramework> 
     <providers> 
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
      <provider invariantName="Npgsql" type="Npgsql.NpgsqlServices, EntityFramework6.Npgsql"></provider> 
     </providers> 
     <defaultConnectionFactory type="Npgsql.NpgsqlConnectionFactory, Npgsql.EntityFramework" /> 
     </entityFramework> 
     <system.data> 
     <DbProviderFactories> 
      <remove invariant="Npgsql" /> 
      <add name="Npgsql Data Provider" invariant="Npgsql" support="FF" description=".Net Framework Data Provider for Postgresql" type="Npgsql.NpgsqlFactory, Npgsql" /> 
     </DbProviderFactories> 
     </system.data> 
     <connectionStrings> 
     <add name="KutaisiDatabase" connectionString="Server=localhost;Database=KutaisiDatabase;User Id=postgres;Password=12345;" providerName="Npgsql" /> 
     </connectionStrings> 
     <runtime> 
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
      <dependentAssembly> 
      <assemblyIdentity name="Npgsql" publicKeyToken="5d8b90d52f46fda7" culture="neutral" /> 
      <bindingRedirect oldVersion="0.0.0.0-3.0.7.0" newVersion="3.0.7.0" /> 
      </dependentAssembly> 
     </assemblyBinding> 
     </runtime> 
    </configuration> 

私にとって最も骨董品の事実はまったく同じ設定では、Windowsのために働くということですが、アプリ(ないサービス)を形成します。 このような動作の理由は何でしょうか? ご協力いただければ幸いです。

+0

私はWindowsサービスのために、\\ 127.0.0.1 \ PIPE \ sql \ queryを開こうとしています。 – Kaissa

+0

答えは見つかりました:参照プロジェクトはapplication.exe.configをその結果、サービスはSQLサーバー接続文字列のような接続文字列を処理していたため、Postgresデータベースでは機能しませんでした。 – Kaissa

答えて

0

回答が見つかりました:参照されているプロジェクトがapplication.exe.configを出力ディレクトリにコピーしなかったため、SQL Server接続文字列のように接続文字列を処理していたため、動作しなかったpostgresデータベース。

関連する問題