13

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

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

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

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

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

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

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

ありがとうございました

4

12 に答える 12

30

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

于 2011-09-06T21:37:55.467 に答える
3

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ファイルに残っている間に、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パッケージを再度追加します。

于 2019-05-24T19:09:12.120 に答える
1

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

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

<構成>

<appSettings>

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

</ appSettings>

<configSections>

</ configSections>

</ configuration>

于 2012-07-05T10:00:44.160 に答える
1

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

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

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

于 2013-08-12T16:54:10.483 に答える
1

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

于 2015-03-28T12:36:42.393 に答える
1

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

于 2016-11-20T17:26:32.830 に答える
1

同じエラーが発生します。そして、私は「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"]が最も重要です。

于 2019-07-17T07:56:44.007 に答える
0

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

古いバージョンのVMWareViewClientを使用していて、その後アップグレードされた一部のユーザーには、この問題が発生しています。

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

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

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

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

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

もう1つの発見:

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

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

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

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

MikesDataContext dc = new MikesDataContext()

つまり、実際には例外をスローする接続を確立しています。この接続を使用するコードの次の行までは取得されません。

于 2016-04-25T07:50:09.347 に答える
0

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

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

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

于 2018-09-20T11:45:47.240 に答える
0

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

于 2019-06-03T09:13:01.120 に答える
0

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

<connectionStrings>
your connection strings
</connectionStrings> 
于 2020-02-07T07:46:29.150 に答える
0

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

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

于 2020-02-13T16:13:40.893 に答える