web-dev-qa-db-ja.com

例外:「system.data.sqlclient.sqlconnection」のタイプ初期化子?

この例外の何が問題なのか理解できませんでした。

'System.Data.SqlClient.SqlConnection'の型初期化子が例外をスローしました

最初の試み:WCFサービスを使用して小さなアプリケーションを作成していました。それは問題なく動作し、LINQを適切に使用できます。 2、3日後。たぶん、Visual Studioを閉じて、プロジェクトを再度ロードした後です。例外が表示されます。

2回目も同じです。別のプロジェクトを作成しましたが、他のことをするまでは問題なく動作します(コードは変更しません)

SQL Serverは正常に動作しており、SQL ManagementStudioを介して問題なく接続できます。

デバッグエラーをクリックすると、linqファイルから接続文字列が表示されます。

何が問題なのですか?検索しようとしましたが、これを解決するための答えが見つかりませんでした。

ありがとうございました

11
DucDigital

これは、app.configファイルにエラーがあることを意味している可能性があります。不正な形式のXMLまたは予期しない要素。このエラーは、SqlConnection内の静的フィールドがapp.configから読み取られ、次のようにトレースの詳細レベルが決定されるために発生します。 http://msdn.Microsoft.com/en-us/library/ms254503.aspx

29
Jared Moore

OracleとSQLServerの両方のNuGetパッケージを含むプロジェクトがある場合、このソリューションはこのエラーの修正に役立つ場合があります。

これらのNuGetパッケージの両方をアンインストールします。

  • Oracle.ManagedDataAccess.Core
  • System.Data.SqlClient

App.configを開き、依存するアセンブリエントリがまだリストされているかどうかを確認します。そうした場合、削除これらのエントリを今すぐ。それらは次のようになります。

<dependentAssembly>
    <assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.0.19.1" newVersion="2.0.19.1" />
</dependentAssembly>
<dependentAssembly>
    <assemblyIdentity name="System.Data.SqlClient" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.5.0.1" newVersion="4.5.0.1" />
</dependentAssembly>

App.configファイルに残っている間に、delete Oracle Managed Data Accessセクション全体(存在する場合)(これは、修正するために必要な唯一のことである可能性がありますこの問題は、ただし、このソリューションにリストされているすべての手順を実行しました)。あなたがそれを持っているならば、それはこのように見えるかもしれません:

<Oracle.manageddataaccess.client>
    <version number="*">
      <settings>
          <!-- your TNS_ADMIN value would be located here -->
      </settings>
      <dataSources>
        <dataSource alias="SampleDataSource" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(Host=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL))) " />
      </dataSources>
    </version>
</Oracle.manageddataaccess.client>

Packages.configファイルを開き、OracleおよびSQL Serverパッケージのエントリがまだリストされていないことを再確認します。これらは削除されているはずですが、100%確実であっても問題はありません。

プロジェクトを保存してから、NuGetパッケージを再度追加します。

2
ThePeter

同じエラーが発生します。そして、「app.config」を変更することで、その解決策を見つけます。

<configuration>
  <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <section name="O4E.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
    </sectionGroup>
  </configSections>
  <startup>
    <supportedRuntime version="v2.0.50727"/>
  </startup>
  <applicationSettings>
    <O4E.Settings>
      <setting name="abc" serializeAs="String">
        <value>xyz</value>
      </setting>
    </O4E.Settings>
  </applicationSettings>
  <appSettings>
    <add key="" value=""/>
    <add key="" value=""/>
  </appSettings>
</configuration>

注:行[supportedRuntime version = "v2.0.50727"]が最も重要です。

1
N T

私の場合、問題はapp.configファイルのタグ名を誤って変更したことでした。app.configファイルを別の古いファイルと比較するだけです。問題が見つかります...

1
Muhammad Salman

.NET FW 4.0用に次のWindows修正プログラム(KB2840628)がインストールされているかどうかを確認し(Windowsの[コントロールパネル]-> [プログラム+機能]を使用して[インストールされた更新プログラムを表示]をクリックします)、インストールされている場合はアンインストールしてみてください...

https://connect.Microsoft.com/VisualStudio/feedback/details/793500/sqlclr-typeinitializationexception-in-sqlconnection-since-kb2840628

それは私にとって問題を解決しました。

1
Joe Stampf

また、プロジェクトを再開したときに、その例外に一度直面しました。私の場合、以下に示すように、構成ファイルには空のタグとキーがありました。問題を修正するためにappSettingsタグを削除しました。

<?xml version = "1.0" encoding = "utf-8"?>

<構成>

<appSettings>

<add key = "" value = "site" />

</ appSettings>

<configSections>

</ configSections>

</ configuration>

1
Mehmood

App.configを削除してから、プログラムを実行します

1
imad hashmi

これについての返答が遅れて申し訳ありませんが、この問題をほぼ3日間続けて調査した後、私は自分の結果を共有したいと思いました。ブラウザでHTTP 503 Service Unavailableエラーが発生した後、SQL Server Reporting Services、より具体的にはWebポータルで同じエラーがポップアップ表示されました。

この問題は、SSRSインスタンスを実行するサービスアカウントと、データベースに接続するアカウント(私の場合はレポートインスタンスとは別のサーバーにあります)の両方に関連していることが判明しました。問題が構成やユーザー権限のどこにあるのか、つまりアカウントに昇格された権限が正確に必要な場所を正確に特定することはまだできていません。全体として、根本的な問題は、Webポータルコードを実行していたアカウントに、System.Data.SQLClientタイプを呼び出すための十分な権限がなかったことであるように思われます。

TL; DR:ユーザーの権限を確認してください!これが誰かに役立つことを願って、私はこれを理解しようとして長い3日間を過ごしました。

0
ald4ri

私は何ヶ月も正常に動作するプログラムでこの問題に遭遇しましたが、突然動作を停止します。私が毎回機能することを発見した修正は、これをMain()の最初の呼び出しとして配置することです。

System.Configuration.ConfigurationManager.GetSection( "system.xml/xmlReader");

0
jhilde7

同じエラーが発生し、問題はWeb.configにありました。私の場合、connectionStringsタグとその値を追加するだけで、問題が解決します。

<connectionStrings>
your connection strings
</connectionStrings> 
0
nitin27verma

上記と同様の解決策ですが、私の場合、削除する必要があるのはapp.config内のapplicationSettingsタグでした。

0
Fiach Reid

私はこの問題についてたくさん読みましたが、このエラーの次の原因については誰も言及していません。

VMWare View Clientの古いバージョン(当時はアップグレード)を使用していた一部のユーザーに、この問題が発生しています。

'System.Data.SqlClient.SqlConnection'の型初期化子が例外をスローしました

  • 古いバージョンのVMWare View Clientのみをインストールしたユーザーは問題ありません。
  • 新しいバージョンのVMWare View Clientのみをインストールしたユーザーは問題ありません。
  • ただし、古いバージョンのVMWare View Clientを使用していたが、現在はアップグレードされているユーザーには問題があり、アンインストールしても続行されますVMWare View Client、次に新しいバージョンをインストールします。

.NetFrameworkとVisualStudio Tools for Officeを再インストールしようとしましたが、何も修正されませんでした。

修正はまだ見つかりませんが、これが他のユーザーに役立つことを願っています。

ところで、私たちはapp.configweb.configをチェックしましたが、これらはすべて問題ありません(そして、他のユーザーと完全に連携します)。

もう1つの発見:

  • ユーザーがローカル管理者権限を持っている場合、この問題はアップグレード後は発生しませんVMWare View Client
  • 彼らがローカル管理者権限を持っていない場合、問題が発生します。

だから...私たちは今立ち往生しています。

テスト用のラップトップを持っていますが、ユーザーIDにローカル管理者権限がない場合はいつでもエラーを再現できます。その後、ローカル管理者権限を付与し、再度ログインすると、エラーは解消されます。

そして、コードにtry..catchをたくさん追加したところ、次の1行のコードで例外が発生することがわかりました。

MikesDataContext dc = new MikesDataContext()

したがって、例外をスローするのは、実際には接続を行うことです。この接続をuseするコードの次の行までは取得されません。

0
Mike Gledhill