2

Win フォーム アプリケーションからグローバル一時テーブルを選択しようとすると、任意の数のクライアントからテーブルを読み取ることができますが、Windows サービスでホストされている WCF サービスから同じことを行うと、 無効なオブジェクト名 '# というエラーが発生します#MyTempTable'.

同時に、同じコードでwinformからテーブルを選択できますが、考えられる理由を誰かが説明してくれますか?

  1. SP はデータ アダプタ dll から呼び出されます
  2. データ アダプター (WCF) サービスは、サービスの開始時にこの ada アダプター dll を読み込みます
  3. 別の WCF サービスは、Web クライアントでデータを表示するためにデータの DA サービスを要求します
  4. DA サービスは Windows サービスで NT AUTHORITY\NetworkService としてホストされます
  5. winform と dll の両方で使用される接続文字列は、"conString = "Data Source=.\;" + "Initial Catalog=myDB;" + "Integrated Security=SSPI;";" です。接続文字列でも Sa 資格情報を渡そうとしましたが、動作は同じです。

私がdllからやろうとしていることは、勝利フォームから行うことができ、WCFサービスで使用されるdllから行うことはできません。

4

1 に答える 1

2

グローバル一時テーブルを作成した接続が有効になるまで。他の接続は、そのグローバル一時テーブルにアクセスできます。グローバル一時テーブルを作成した接続が閉じられるとすぐに、このグローバル一時テーブルは自動的に削除され、それを使用しようとする他の接続は無効なオブジェクト名という例外を受け取ります。

MSDN

于 2014-02-27T19:00:32.630 に答える