- - PR -
Aspを使って、異なるサーバ間でファイルのコピーをしたい
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-04-11 18:07
Aサーバ、Bサーバがあり、IISはAサーバに立てています。
両方のサーバのディレクトリを仮想ディレクトリに割り当てて、 Aサーバ上、またはBサーバ上でファイルのコピーは filename = Server.MapPath("コピー元.txt") filename2 = Server.MapPath("コピー先.txt") Set fs = CreateObject("Scripting.FileSystemObject") w = fs.CopyFile(filename,filename2,True) とするとAサーバでもBサーバでも正しくコピーできます。 しかし、 filename = Server.MapPath("コピー元.txt") filename2 = "\\Bサーバ名\DATA\コピー先.txt" Set fs = CreateObject("Scripting.FileSystemObject") w = fs.CopyFile(filename,filename2,True) 等と記述した場合、 >Microsoft VBScript 実行時エラー エラー '800a0046' >書き込みできません。 とエラーが出てしまいます。 この回避方法、または設定について教えていただけませんでしょうか? よろしくお願いいたします。 | ||||||||
|
投稿日時: 2005-04-11 18:12
書き込む権限が無いようですよ。 _________________ たつごろー codeseek こみゅぷらす | ||||||||
|
投稿日時: 2005-04-11 18:46
そのASPスクリプトを置いているサイト/ディレクトリに対する、
IISでの認証方式はどうなってますか? 匿名認証を許可しているなら、匿名認証に使ってるアカウントで、 基本認証やWindows統合認証を行ってるなら、認証に使ったアカウントで、 それぞれASPが実行され、ファイルの書き込みが行われます。 あとはファイル書き込みを行うマシンにて、 そのIISで使ってるユーザと同一名/同一パスワードのユーザが 書き込みする権限を持っていれば書き込みが可能です。 そのスクリプトを動かせるユーザを限定するのか否か、によって、 匿名認証を無効にして書き込み権限持つユーザで認証させるようにするか、 匿名認証有効にしたまま匿名ユーザで書き込みできるようにするか、 ってのを決める感じです。 | ||||||||
|
投稿日時: 2005-04-13 09:24
Mattun様>
Aサーバ、Bサーバともに、
「匿名アクセスを有効にする」:OFF 「統合Windows認証」:ON にしてますので、WindowsのログインIDで認証を行っているはずです。
IISで使っているユーザは「統合Windows認証」です。 ・このユーザは、「同一名/同一パスワード」のユーザで「書き込みする権限」を持っています。 従って、書き込めない理由が分かりません。 現に、Aサーバの仮想ディレクトリ(またはBサーバの仮想ディレクトリ上)内で、複製を作ることが可能です。 但し、AサーバからBサーバにコピーする際に書き込みエラーが出てしまいます。 この際、AサーバからBサーバへコピーしにいこうとしているユーザは「統合Windows認証」のユーザではないということなのでしょうか? 一体どのユーザなのか検討がつきません。 | ||||||||
|
投稿日時: 2005-04-13 09:47
そこまでわかってるなら、Bサーバのディレクトリ上で、ファイルアクセスの監査設定を 行えば絞り込めるでしょう。 | ||||||||
|
投稿日時: 2005-04-14 13:39
Aサーバの仮想ディレクトリ設定の「リソースのコンテンツのある場所」を
「このコンピュータにあるディレクトリ」にしてテストしていたのですが、 「他のコンピュータにある共通ディレクトリ」にして、Aサーバのディレクトリを指定することによって、「ネットワークディレクトリのセキュリティ資格情報」でユーザとパスワードを聞いてきますから、そこでA,Bサーバ共に読み取り書き込み出来るユーザを指定することにより、 A,Bサーバ間の通信が出来るようになりました。 しかし、Aサーバの「リソースのコンテンツのある場所」は「このコンピュータにあるディレクトリ」なのに、「他のコンピュータにある共通ディレクトリ」にしなくてはならないことが、まずおかしい点です。 この問題を「このコンピュータにあるディレクトリ」にしたまま回避する方法は無いでしょうか? もっと言えば、「統合Windows認証」方式を取っていますから、使用ユーザ(WindowsログオンID)がBサーバへのAccess権を持っていれば、書き込めるようにしたいのですが、無理でしょうか。 [ メッセージ編集済み 編集者: Hymm 編集日時 2005-04-14 14:19 ] | ||||||||
|
投稿日時: 2005-05-19 17:11
全然見当違いの意見かもですが・・・
BサーバとAサーバに共通のユーザー(ASP用)を作成。 アプリケーションプールのプロパティ上の「識別」にて明示的に上記ユーザーとパスワードを指定。 同様にWebサイトプロパティの認証情報も明示的に指定。 という話でしょうか。 通常のファイルIOと同じくWebアプリケーションが今どのユーザー権限で動作しているのかを意識すればできると思います。たぶん。 全く違う話だったらごめんなさい。 |
1