2012-01-23 11 views
0

Computer Aに.mdfデータベースを配置しようとしていますが、同時にComputer Bにアクセスしようとしていますが、私はアクセスできませんmdfファイルは別のプロセスで使用されているためです。1つの.mdfデータベース(ASP.net)に複数の接続があるSQL Server

セットアップは、データベースがComputer Aのパブリックフォルダでホストされていることです。私は両方のコンピュータ上で実行されているのVisual Studioを持っている、とComputer Bは、コンピュータA

コンピュータの接続パス文字列上のデータベースにアクセス:

C:\ユーザーがパブリック\を\を

コンピュータBの接続パスdatabase.mdf文字列:

\ 192.168.254.8 \公開\ database.mdf

私は、DB上の複数のアクセスを有効にするのか分からないという設定のいくつかの並べ替えがありますか?またはこれは不可能ですか?

EDIT:

申し訳ありませんが、私は私の質問を言い換えるてみましょう。

ネットワーク経由で接続された2台のコンピュータがあり、1つのVisual Studioソリューション/プロジェクトWebサイトにアクセスしたいとします。私はデモとしてこれをやりたかったのですか?

+0

どのDBMSを使用していますか? –

+0

@Oleg SQL Server Express、申し訳ありません。 –

+0

@PodMaysこれまでにこれを理解しましたか? –

答えて

1

データベースファイルへの同時または直接アクセス非常に悪い練習または単に不可能なDBMSコントロール。

適切なDBMSツールを使用してデータにアクセスします。

はい - デモ用のWebサイトプロジェクトにアクセスできます。

+0

しかし、私はどのようにサーバーにプロジェクトを展開するのですか?このシステムを使用している従業員は複数存在し、サーバーには1つの.mdfしかありません。各従業員は.mdfにアクセスする必要があるコンピュータを持っているので、それは同じケースでしょうか? –

+0

@Chrisは、2つのコンピュータでVisual Studioを実行しているので、SQL Expressの2つのインスタンスも実行しているということがわかりました。しかし、デモの目的でこれを行うことはできますか? 2つのコンピュータがネットワーク経由で接続され、ウェブサイトプロジェクトにアクセスしていますか? –

1

ホストマシンでSQL Serverのインスタンス(明示的であっても)を実行する必要があります。

クライアントからのすべての要求は、そのサーバーインスタンスに接続するための標準的なメカニズムを使用する必要があります。つまり、SQL Serverの独自のコピーを実行するのではなく、ホストマシン上で実行されているインスタンスに接続します。

+0

私はこれを実現しました。違いは、Visual Studio自体とSQL Serverを2台のコンピュータにインスタンス化したことです。だから私はこれをすることができないのですか?私は同じプロジェクトにアクセスしている2台のコンピュータでデモをしようとしていたからです。 –

+1

Visual Studioは、SQL Serverのリモートインスタンスを使用して接続できます。私はいつもそれをする。接続文字列に設定するだけです。 –

0

SQL Serverをホストマシン(データベースを保持したいコンピュータ)にインストールします。

Visual Studioで、「サーバーエクスプローラ」を使用して、データベースのリモートインスタンスを特定します。そこから、接続文字列でSQL Serverのリモートインスタンスを利用できるため、複数のコンピュータを単一のデータベースに接続することができます。

SQL Serverの2つのインスタンスを使用して、単一の.mdfファイルに接続することは非常に悪いことです。

+0

これは私が今やっていることです。接続文字列は\\ 192.168.254.8 \ Public \ database.mdfですが、エラーが発生します。* .mdfは既に別のプロセスで使用されているか、UNC共有にあります。 –

+0

正確には...「UNCシェアに位置しています」。あなたはMDFに接続しません。 SQL Serverインスタンスに接続します。 'Data Source = 192.168.254.8;初期カタログ=データベース;ユーザーID = myUsername;パスワード= myPassword;' –

0

接続文字列にMDFファイルを指定するのではなく、SQL Server Management Studio(SSMS)を使用してMDFを接続する必要があります。その後、MDFではなくSQL Serverに接続します。

MDFファイルとLDFファイルを、VSプロジェクトに保管するのではなく、SQL Server IDがアクセスできる場所に移動する必要がある場合があります。

ほとんどのプロジェクトでは、バイナリMDF自体ではなくVSプロジェクトでDBを作成するためのスクリプトが用意されています。

展開すると、プロセスは似ています。SSMSを使用してサーバーにMDFを接続します。

+0

ConnectionStringの外観はどうですか? –

+0

通常、次のようなものがあります。 'Data Source = YourServerNameOrIP;アプリケーション名= YourAppName;初期カタログ= YourDBName;統合セキュリティ= True' – RickNZ

0

はい、2台以上のコンピュータがLANなどのネットワークで接続されている場合Visual Studio接続でユーザー名/パスワード/を入力して、別のSQL ServerからデータベースDatabase1.mdfにアクセスできます。

短所:

より7〜8のシステムはビッグで...同じデータベース同じ時間システムの応答が遅くなり、ハングアップまたは超過またはデバイスが応答しない接続プールのようなエラーが生じる可能性が

にアクセスしている場合彼らが使用する会社巨大なマルチコア&マルチプロセッサベースのサーバはより速く応答します。

克服:アプリケーションの作成接続のオープンとクローズを使用特に、SQLクエリを実行する際には、クローズする必要があります。

Best Programerは、通常の方法を使用する代わりにトランザクションを使用します。トランザクションはすべてのユーザーにデータベースをアクセスさせます。有効で成功したクエリの実行。これらのクエリ(トランザクションクエリ)は、主にクライアントマシン上で実行され、後でメインサーバ上でタイムスロット(同期)を取得した時点で同じクエリを更新します。

関連する問題