1

私はかなり単純なことをしようとしていますが、それで頭痛がします。私がここに持っているのは、解決方法がわからない権限の問題だけだと確信していますが、間違っている可能性があります。

これが私のシナリオです...私は3台のサーバーを持っています...

  1. サーバーA-Webサーバー(Windows 2003)-匿名アクセスが有効
  2. サーバーB-Red5Media Server
  3. サーバーC-NAS

サーバーAのWebサイトでは、ビデオをサーバーBに録画/アップロードして、そこでビデオを処理/トランスコードすることができます。次に、サーバーBのCronジョブは、ビデオをサーバーCに移動して保存します。

ユーザーは、サーバーCを指し、ドメインユーザーアカウントとして接続するIISで設定された仮想ディレクトリを介して、サーバーAからビデオを視聴できます。

ASPファイルシステムオブジェクトを使用して、ビデオを含むサーバーC上のフォルダーのサイズを取得する方法を説明する必要があります。

ビデオが保存されているサーバーCのフォルダーの親フォルダーを、UNCパス(\ servername \ videos)を使用してサーバーAのドライブ文字にマップしました。

デバッグの目的でFileSystemObjectのfolderExists()メソッドを使用しようとしましたが、マップされた文字ドライブまたはUNCパスを渡すとfalseが返されます。パスが見つからないというエラーが表示されます。念のため、folderExists()メソッドに渡されるパスのresponse.writeを実行しました。これは、正しいパスです。これらすべてから、これは本当に許可の問題であり、解決方法がわからないと私は信じています。

ありがとう、ライアン

4

3 に答える 3

2

マップされたネットワークドライブは、ユーザープロファイルの一部であるため、IIS6のASPでは使用できません。ユーザープロファイルは、IIS6などのサービスに完全にはロードされていません。

純粋なASP環境(他のdllをインストールできないなど)を想定すると、匿名ユーザーがビデオが保存されているネットワーク共有にアクセスし、UNCパスを使用する必要があります。

現在、通常、IUSRアカウントは、ネットワークにアクセスできないローカルゲストアカウントです。NASが属するドメインにユーザーを作成し、「サイズの取得」タスクを実行する必要があるページの匿名ユーザーアカウントとして、ユーザーの資格情報を指定する必要があります(匿名ユーザー全体を変更する必要はありません)。応用)。

上記は、サーバーAがサーバーCと同じドメインのメンバーであることを前提としています。そうでない場合は、サーバーAが属するドメインに、パスワードを含むサーバーCのユーザーをミラーリングする(または信頼関係をジャンプする)ユーザーを作成する必要があります。フープ)。

これで、先に進んで使用できますFileSystemObject

于 2010-01-05T20:46:09.513 に答える
1

NAS にアクセスするには、FSO.Drives コレクションを操作する必要があります。この記事を見てください(ググっただけですが、問題ないようです):

http://www.stardeveloper.com/articles/display.html?article=2001050301&page=1

これを実行して、ドライブが利用可能かどうかを確認してください。許可の問題であるかどうかを絞り込むのに役立ちます

<%

Dim fso
Set fso = Server.CreateObject("Scripting.FileSystemObject")

Dim drives
Set drives = fso.Drives

Dim isReady

For Each drive in drives
    isReady = drive.IsReady

    If isReady Then
        Response.Write "DriveLetter: " & drive.DriveLetter & "<br>"
        Response.Write "Path: " & drive.Path & "<br>"
        Response.Write "FileSytem: " & drive.FileSystem & "<br>"
        Response.Write "TotalSize: " & drive.TotalSize & "<br>"
        Response.Write "FreeSpace: " & drive.FreeSpace & "<br>"
    Else
        Response.Write "Driv Letter: " & drive.DriveLetter & "<br>"
        Response.Write drive.Path & "<br>"
        Response.Write "No other information available."
    End If
Next

%>

それを試してみて、まだ問題があるかどうかを確認してください。問題がある場合は、もう少し深く掘り下げます:)

于 2010-01-05T18:42:19.013 に答える
0

Not sure if this is the right thing to do but to remedy this I had to map the network drive via ASP (as the IUSR_machine) account like so...

dim objNetwork

Set objNetwork = CreateObject("WScript.Network") 
objNetwork.MapNetworkDrive "X:", "UNC path", "profile", "user", "password"

objNetwork.RemoveNetworkDrive "X:"
set objNetwork = nothing

Then I was able to access the mapped drive letter (X in this case) via the FileSystemObject.

于 2010-01-05T20:01:44.970 に答える