7

昨日、開発マシンに PHP と MySQL をインストールしました。それ以来、.NET プロジェクトの 1 つを実行しようとすると、次のエラーが発生します。

接続名 'LocalSqlServer' がアプリケーション構成で見つからなかったか、接続文字列が空です。

Machine.Config の次の行を参照します。

<add name="AspNetSqlRoleProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

高低を問わずオンラインで検索したところ、machine.config に必要な接続文字列があることが確認できました。

  <connectionStrings>
<add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />
<add name="LocalMySqlServer" connectionString="" />

興味深いことに、本番サーバー (サーバー 2008) に PHP と MySQL をインストールするのとまったく同じ操作を実行しましたが、問題はありません。私の開発マシンは Windows 7 です。

このため、私の開発マシン全体が壊れています。machine.config を修復または修正してこの問題を解決するにはどうすればよいですか? 誰もこれを経験したことがありますか?

ナグス

4

2 に答える 2

30

おそらく、次を含む web.config がどこかにあるでしょう。

<connectionStrings>
    <clear/>
    ...
</connectionStrings>

また、正しい machine.config を見ていることを再確認することもできます。フレームワークのバージョンごとに個別の machine.config があり、32 ビットおよび 64 ビットのフレームワーク用にも個別の machine.config があります。

于 2012-06-11T17:34:11.397 に答える
0

<clear />さまざまな理由で接続文字列の先頭に保持する必要があり、ダミーの接続文字列を追加するという解決策はLocalSqlServer機能しましたが、「なぜ必要なのかわかりません。しかし、アプリはそれなしでは機能しません。」

私の解決策は、下の行を削除するroleManagerことでした。これは古いコードの残りであり、もう必要なくなったからです。

<system.web>
    <roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider" />
</system.web>
于 2021-01-21T20:06:21.480 に答える