0
  1. app.config で構成されたデータベースにアクセスするライブラリ プロジェクトがあります。
  2. web.config で構成されたデータベースにアクセスする Web プロジェクトがあります。

どちらも正常に動作しています

ここで、Web プロジェクトのライブラリを使用したいと考えています。Visual Studio では正常に動作します。運用サーバーでは、Web プロジェクトはデータベースにアクセスしますが、ライブラリはプロジェクト Web からデータベースにアクセスできません。

app.config と web.config の ConnectionString は同一です。運用サーバーでは web.config 設定を使用しないでください。

私の英語に感謝し、申し訳ありません

編集

web.config および app.config 接続文字列

<connectionStrings> 
    <add name="IntranetConnectionString" 
         connectionString="Data Source=(local)\SQLExpress;Initial Catalog=Intranet;Integrated Security=True;" 
         providerName="System.Data.SqlClient" /> 
    <add name="Database.Properties.Settings.IntranetConnectionString" 
         connectionString="Data Source=(local)\SQLEXPRESS;Initial Catalog=Intranet;Integrated Security=True" 
         providerName="System.Data.SqlClient" /> 
</connectionStrings>

エラー:

SQL Server への接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。(プロバイダー: SQL ネットワーク インターフェイス、エラー: 26 - 指定されたサーバー/インスタンスの検索中にエラーが発生しました)

4

3 に答える 3

0

私が正しく理解している場合は、ライブラリの参照をローカルにコピーしてみてください。これを行うにはright-click、プロジェクトの参照をコピーし、プロパティで に設定TrueCopy Localます。これで、ライブラリがサーバーにローカルに配置されます。

web.config/app.config問題がライブラリの参照に関連している場合、これは機能するはずです。問題がある場合は役に立ちません。

于 2012-05-22T20:22:20.320 に答える
0

ソリューション:

DLL で、ConnectionString を受け取るコンストラクターを使用して DataTable にアクセスするためのクラスを作成します。

public TestBLL(String ConnectionString)
{
    TestTableAdapter ta = new TestTableAdapter();
    ta.Connection = new System.Data.SqlClient.SqlConnection(ConnectionString);
}

Web プロジェクトでは:

String cs = System.Configuration.ConfigurationManager.ConnectionStrings["IntranetConnectionString"].ToString();
TestBLL taBLL = new TestBLL(cs);

taBLL には、各クエリにアクセスするためのメソッドがあります

于 2012-05-23T04:16:54.730 に答える
0

DLL は通常、それを呼び出しているホスト アプリケーションの app.config を取得し、それ自体の構成は取得しません。ここに肉はありますか?

于 2012-05-22T20:42:43.670 に答える