IIS 7を設定するには、ISAPI Webサーバー内からリモートデータベース接続を許可するにはどうすればよいですか

StackOverflow https://stackoverflow.com/questions/3902845

質問

Delphi 2010で構築したネイティブWebサービスアプリケーション(ISAPI)があります。現時点では、2つの方法のみを公開しています。最初のEchostringは、Webサービスが適切に機能しているというフィードバックを提供するように設計されており、Delphi Webサービスクライアントから送信する文字列に複数の文字を追加します。これは常に正常に機能します。

2番目の暴露方法は、私が本当に興味を持っている方法です。この方法では、clientDatasetのXML内容を含む文字列を渡します。サーバー側から、私のコードはこのXMLを取得し、clientDatasetに挿入し、その後このデータをサーバー側のデータベースに投稿します。

ibexpressコンポーネント(ibdatabase、ibtransaction、ibqueryなど)を使用して、サーバー側のインターベースデータベースに接続しています。

問題は、IBDatabaseコンポーネントをデータベースに接続しようとするとすぐに、Webメソッドが失敗することです。私はこのエラーのために他のすべてのソースを排除したと思います。クライアントダタセットを作成して、クライアントから送信されたかなり大きなclientDataSetのXMLを使用して、ネストされたデータセットを問題なく含むクライアントから送信できます(MidaSlibユニットを使用しているため、ClientDataSetはDLLをロードしようとしていません)。 Ibdatabaseとそのさまざまなコンポーネントに接続する以外に、作成および構成できます。繰り返しますが、問題はありません。 IBDATABASEコンポーネントの接続されたプロパティをWebサービス内からTrueに設定するとすぐに失敗します。

Windows 7 64ビットUltimate(開発マシンで)でIIS 7.5を実行しています。私は、特定のISAPI DLLの両方に、およびWebサービスが存在するディレクトリ全体に、すべての人(特にIIS_IUSRS)に完全な管理権を付与しようとしました。これは問題を解決しませんでした。

これは完全にIIS 7の特権の問題であると思われます。ISAPIWebサービスがInterbaseクライアントAPIに接続することを許可して、Webサービスを使用してデータベースサーバーに書き込むことができますか? '' '' '' '' '
投稿スクリプト:WebサービスからInterbaseに接続することは問題ではないようです。私はまだ正確な原因を追跡していますが、Webサービス内からインターベースに正常に接続することができました。原因がわかったらこの投稿を更新しますが、この質問はもはや有効ではありません。 '' '' '
私はボブの答えを正しいものとしてマークしています。接続文字列が間違っていました。実際に(これは恥ずかしいですが、誤解を招くよりも恥ずかしいです)、私は 句。

リソース文字列に接続情報を保存しました。私はaで割り当てをしました 句。 DataBaseNameプロパティのリソース文字列の名前はDataBaseNameでした。 句により、リソース文字列内の値の代わりに、DataBaseNameプロパティがそれ自体に割り当てられました。 DataBaseNameリソース文字列をユニット名(IE、databasename:= ibmodunit.databasename;)でプレハブに刻むことにより、問題を修正しました。

役に立ちましたか?

解決

同じ接続文字列を使用して、そのマシンの「ネイティブ」VCLフォームアプリケーションからインターベースデータベースに接続できると思いますか?

おそらく愚かな質問ですが、サービスとしてインターベースを実行していますか? (それ以外の場合、ISAPI DLLはそれを「表示」することができません)。

他のヒント

編集
ごめん。私はIISにネットワーク許可がないことを示唆する愚かなことを書きましたu003Cduh!>そして、私はこの投稿を削除することができないようです!

しかし - 私はどこかで、後のWindowsバージョンのサービス許可が多少削減され、LocalSystemアカウントにはネットワークアクセスがなくなったことを読みました。投稿タイトルに「リモート」が含まれているため、DLLまたはサービスおよび/またはインターベースサービス、または関係する他のファイルのいずれかに追加のアクセス許可を付与する必要がありますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top