2009-06-19 10 views
1

私の問題は以下の通りである、ASP.NetのWebサイトには、他のマシン上で一覧表示されます

私は、IISでホストされているASP.NetのWebサイトを持っています。このWebサイトは、同じサーバー上のAccess 2007 DBファイルに接続します。 DBファイルには、同じドメイン上の別のサーバー上の共有リストへのリンクが含まれています。ビジュアルスタジオのビルトインサーバーでWebサイトを実行すると、DBファイルへの接続を開き、データを正常に取得できます。しかし、私はIIS上でWebサイトを実行しようとするたびに、WebサイトはDBファイルとの接続を開くことができません。

問題は何と思いますか?

ありがとうございました。

+2

私は毎日のWTFでこれについて読んだことがあります。 – rmeador

+0

具体的なエラーはありますか?より多くの情報を提供することは可能ですか?たとえば、IISのバージョンとマシンの種類は? 64ビットマシンで実行されているII6またはII7のマシンでAccess DBにアクセスすると、多くの人がプロバイダの問題に遭遇します。 – Zensar

答えて

1

は、この記事を見てください:Active Server Pagesの
http://support.microsoft.com/kb/253580

からリモートアクセスデータベースに接続する方法

はい、私はあなたのデータベースが同じマシン上にある知っているが、違いがありますIISを実行すると、ファイルとフォルダーのアクセス許可と認証が失われます。この記事では、あなたをぶら下げているものが何であれ、その可能性があることは間違いありません。

それは権限の問題になります...

2

をAccessデータベースを混合し、IISは良いことであるか、別の議論されているかどうか。 Visual StudioのWebサーバーを使用して実行すると、IISは実行されますが、IISはネットワークサービスとして実行されます(既定では)。これはできることで制限されています。

アクセスデータベースにアクセスするには、IISが実行するアカウントに、データベースが存在するディレクトリの読み取り、書き込み、実行、変更、および削除が必要です。 APP_DATAディレクトリ、アクセスデータベースが他の場所にある場合は、これらのアクセス許可を与える必要があります。

リモートマシンへのアクセスによる接続は、ネットワークサービスアカウントがローカルアカウントであり、共有ポイントサーバーに存在しないためにアクセスできない可能性があります。 。

あなたがドメインにいた場合、適切にロックダウンされたドメインアカウントでIISを実行できますが、うまくいくかもしれませんが、率直に言えば、ちょっと面倒です!

+0

Blowdartはそれを持っています - ネットワークサービスはローカルアカウントなので、DOMAIN \ ComputerName $アカウントが他のマシンのリソースにアクセスする許可を与える必要があります。 – Ryan

0

アクセスをASP.netサイトからSharePointにアクセスするためのファッジとして使用すると、長期的には多くの苦痛を与えることになります。

より良い方法は、SharePointのWebサービスを使用してそのデータにアクセスすることです。式からアクセスを完全に削除することです。

http://www.scribd.com/doc/8634090/Accessing-SharePoint-Data-Using-C-Without-Running-Code-On-the-SharePoint-Server-Part-1

MSDN - Using ASP.NET web services

Creating and Consuming a Web Service

1

アクセス2007は、風をSharePointに接続することができます。リストにリンクした後、ADO、さらにはDAO + VBAコードとSQ​​Lクエリがそれらのリストに作用します。

多くの人がこのような理由からSharePointへのデータコネクタとしてJET(実際には2007年にACEと呼ばれていました)を使い始めました。Webベースのシステムを構築しているので、ここではmsアクセスは使用しませんが、アクセス2007に付属する2007バージョンのJETデータエンジンのみを使用します。

誰かがSharePointのOLEDBプロバイダを用意する必要がありますそれらのリストをms-accessのような標準のsqlテーブルとして表示することを可能にするリストです。 JETをデータコネクタシステムとして使用することは、あまり良い考えではないでしょう。私はあなたがアクセスJETテーブルにデータを格納したり配置したりするのではなく、新しいアクセスJETエンジンがSharePointリストを表示して通常のSQLテーブルとして使用できる素晴らしい機能を使用していることを認識しています。このアプローチは、ASP.netコードがそのデータに対してSQL更新を実行することを許可するか、またはこれが通常のSQLテーブルであるかのように行います。これはとても簡単です。

したがって、SharePointサイトのセキュリティアクセス許可はこの接続をエンドユーザーではなく、実際のWebサイトの接続として表示します(または少なくとも、テーブルをSharePointにリンクします)。私はあなたがこれを行うときにSharePointユーザー認証プロセスが信頼できるとは信じられません。何が起こるかは、SharePointサイト上でいくつか変更することです。次に、JET接続が新しいログオン資格情報を要求するようになることを知っています。その時点でログオン資格情報を提供したり、制御したりすることはできません。

他の人も指摘しているように、これは問題があり、信頼性が低くなります。

関連する問題