- - PR -
Wndows Server 2003SP1上でASP.NET2.0+ADO.NET
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-07-04 11:38
こんにちは。
Wndows Server 2003SP1にVisual Studio 2005 Professionalをインストールし、 Webサイト(WebSite1)をASP.NET2.0にて作成しました。 そのWebサイトは、SQL Server 2005 Developer Editionからあるテーブルのデータ 一覧を取得し、表示します。 作成したWebサイトは仮想ディレクトリ作成時に、スクリプトの実行等、全てを許可し ました。 F5にてデバッグ実行したら、ちゃんと表示されました。web.configのdebug="false" にして、別のマシンから http://ホスト名/WebSite1 にアクセスしたら、セキュリティエラーが発生します。以下がエラーです。 セキュリティ関係で何か設定が必要でしょうか? --エラー内容 '/WebSite1' アプリケーションでサーバー エラーが発生しました。 -------------------------------------------------------------------------------- セキュリティ設定により、ID 'SqlDataSource1' が指定されたデータ ソースで ADO.net マネージ プロバイダ 'SqlClientFactory' へのアクセスが拒否されました。 |
|
投稿日時: 2006-07-04 11:57
> F5にてデバッグ実行したら、ちゃんと表示されました。
これはIISを利用した実行でしょうか、それとも開発サーバ上での実行でしょうか。 IIS上で実行して動作してるのであれば、あとはあやしいのはweb.configの authenticationの設定かなぁ? authenticationのmodeは何になってますか? |
|
投稿日時: 2006-07-04 13:00
>それとも開発サーバ上での実行でしょうか。
開発サーバ上での実行です。 authenticationのmodeはWindowsになっています。 DBにアクセスしないASP.NETのアプリケーションは、他マシンから接続でき、ちゃんと表示できたのですが。 他PC->ASP.NET->DB という順の、ASP.NET->DBの部分でエラーが起きているのでしょうか。 DBへのアクセスは、SQL Server認証です。web.configには、 <connectionStrings> <add name="WdDBConnectionString1" connectionString="Data Source=ホスト名;Initial Catalog=DB名;Persist Security Info=True;User ID=ユーザ名;Password=パスワード" providerName="System.Data.SqlClient"/> </connectionStrings> のようになっています。 [ メッセージ編集済み 編集者: koji 編集日時 2006-07-04 13:04 ] |
|
投稿日時: 2006-07-04 13:09
> 開発サーバ上での実行です。
じゃあ、ちゃんと動いてるかどうかの確認はできていない、と 考えるべきですね。 開発サーバはIISとは別のものですし、特にASP.NETを実行する ユーザが異なるためにセキュリティまわりはまったく別の 動きをしていると考えたほうがよいです。 > 作成したWebサイトは仮想ディレクトリ作成時に、スクリプトの実行等、 > 全てを許可しました。 普通は「読み取り」と「ASPなどのスクリプトを実行する」だけに 許可が入っていれば十分です。 あとはどこかなぁ。 サーバ上からlocalhostとしてアクセスしたときはどうなります? |
|
投稿日時: 2006-07-04 13:19
> じゃあ、ちゃんと動いてるかどうかの確認はできていない、と
> 考えるべきですね。 > 開発サーバはIISとは別のものですし、特にASP.NETを実行する > ユーザが異なるためにセキュリティまわりはまったく別の > 動きをしていると考えたほうがよいです。 なるほど。ユーザが異なるのですね。 そのあたりが良くわかっていないのですが、IISでASP.NETのアプリケーションを実行する場合、例えば、他PCから、 http://ホスト名/WebSite1 にアクセスがあった場合は、サーバー上のASPNETユーザが実行する事になるのでしょうか? で、そのASPNETユーザにSQL Server 2005にアクセスする権限が無い、と理解すればよろ しいのでしょうか? > 普通は「読み取り」と「ASPなどのスクリプトを実行する」だけに > 許可が入っていれば十分です。 なるほど。このように変更してみましたが、問題無く、実行させる事が出来ました。 (DBにアクセスしない、ASP.NETアプリケーションで試しました。) > サーバ上からlocalhostとしてアクセスしたときはどうなります? やはり、同じエラーが発生しました。 [ メッセージ編集済み 編集者: koji 編集日時 2006-07-04 13:42 ] |
|
投稿日時: 2006-07-04 13:42
> IISでASP.NETのアプリケーションを実行する場合、サーバー上のASPNETユーザが
> 実行する事になるのでしょうか? 2003サーバの場合は NT AUTHORITY\NETWORK SERVICE というユーザになりますね。 偽装等を行っていなければ、ですが。 で、アクセス権がない場合はメッセージが異なるはずです。 しかもSQL認証にしているのであれば、実行ユーザは関係ないのでそのあたりの 問題ではなさそうですね。。。 さて、なんだろ。。。 |
|
投稿日時: 2006-07-04 13:49
どっとねっとふぁんさん、ありがとうございます。
> で、アクセス権がない場合はメッセージが異なるはずです。 > しかもSQL認証にしているのであれば、実行ユーザは関係ないのでそのあたりの > 問題ではなさそうですね。。。 そうですか。 以前、Webサービス(PC1)にアクセスする、Flashアプリケーション(PC2)を作成して、 クライアント(PC3)からアクセスした時も、Flashアプリケーションが実行できません でした。FlashアプリケーションがあるサーバーPC2はWindows Server 2003です。 Windows Server 2003のセキュリティの問題が何かあるのでしょうかね。 Windows Server2003SP1+ASP.NET2.0+SQL Server2005でWebアプリケーションを作成 する場合、このような現象が必ず起こるような気がするのですが、そうではないのでし ょうか。皆さんは、どのようにしているのでしょう? 色々、調べてみます。 |
1