5

私は SalesLogix 接続プロバイダーを使用していますが、これは 32 ビット ドライバーです。接続を開こうとすると、次の例外が発生します

System.Data.OleDb.OleDbException (0x80004005): エラー メッセージがありません。結果コード: E_FAIL(0x80004005)

アプリケーション(Webとデスクトップ)の両方で次の接続文字列を使用しています

Provider=SLXOLEDB.1;Data Source=TestServer;Initial Catalog=SLXTestApp;User Id=Alex;Password=alex124;Persist Security Info=True;Extended Properties=Port=1706;Log=Off"

デスクトップアプリケーション(C#)で同じ接続文字列で同じコードを使用する場合。接続を正常に開き、エラーなしでデータを取得します。しかし、asp.net 4.0の場合、エラーが発生します。

以下は私のアプリケーションの構成/設定です

1-両方のアプリケーションのプラットフォーム ターゲットは同じ、つまりx86です。
2-64 ビット OS の Web サーバー 2008 R2 で IIS (7.5.7600.16385) を使用しています。
3-32 ビット アプリケーションを有効にするは、アプリケーション プールで true です。
4-マネージド パイプライン モード = 統合
5-Aspnet 4.0(C#)

4

1 に答える 1

5

SalesLogix OLEDB プロバイダーは 32 ビットのみです。データベースにアクセスするには、IIS Web サイトを 32 ビット モードで実行する必要があります。

詳細については、こちらを参照してください: http://help.webcontrolcenter.com/KB/a1114/how-to-enable-32-bit-application-pool-iis-7-dedicatedvps.aspx

あなたはすでにその設定をしているようです...しかし、念のために再確認してください。

次に: ドライバは正常に動作していますか? 通常のチェックは、SalesLogix LAN クライアントを実行することです (まだインストールされていない場合はインストールします)。クライアント インストールを実行するだけで、問題が解決する可能性があります。

編集: この問題の別の原因 (非常に一般的なようです) を応答に挿入するだけで、アプリケーション プールを実行しているユーザー アカウント (通常はローカル システム) が原因です。

于 2012-05-17T19:32:54.920 に答える