2011-06-27 6 views
1

ファイルを読み込んでクライアントにストリームアウトするために使用しているWebハンドラーがあります。これは私がローカルドライブ上のファイル・パスを使用している場合は正常に動作します: D:私は、共有名を使用している場合は私の\ File.flvASP.Net WebハンドラーUNCとファイルパス

を\に\パス\、しかし:

サーバー名\共有名\ File.flv \

「ログオンに失敗しました:不明なユーザー名または不正なパスワード」が表示されます。

シェアは誰でも自由に制御できます。

私は偽装が有効になっていると、私のハンドラに次のようにあります

context.Response.Write("Context User: " + ((WindowsIdentity)context.User.Identity).Name + "<br />"); 
context.Response.Write("Windows Identity: " + WindowsIdentity.GetCurrent().Name + "<br />"); 

私は特定のアカウントを使用して、匿名アクセスを持つように実行するIISアプリケーションを設定すると、私は次のよう

コンテキストユーザーを取得: Windows ID:SpecificAccount

匿名アクセスを使用せずにWindows認証を使用するように設定すると、

コンテキストユーザー:マイアカウント Windowsのアイデンティティ:マイアカウント

それはnonshare対共有のエラーメッセージを変更しません。

私は、Webハンドラと偽装について、このWebページを見つける:それも問題を解決する場合、私は、それを実装する方法を正確にわからない、または、 http://weblogs.asp.net/drnetjes/archive/2005/06/06/410508.aspx

けど。

アイデア?あなたの上記の記事で

+0

ん 'NETWORKのSERVICE' idは、ファイルへのアクセス権を持っており、それがDIRのhirarchyのサーバー再構築する必要がありますか? – Rahul

+0

それは今、助けていない..): – Rob

+0

あなたは再帰的に許可を与えましたか(私はDIR-> subdir-> leaf(file)を意味しますか?現在、匿名アクセスは拒否されていますか? – Rahul

答えて

0

Gaah(wikipediaを参照してください)...私は自分の質問に答える憎むが、ここでの問題は何であったかです:

共有やファイルのパーミッションが正しく設定されました。これは古いWindows 2003マシンで、新しいアプリケーションプール(この特定のアプリケーションでやった)を使用すると、私はいつもアクセス許可に問題があります。

解決策は(facepalm)サーバーを再起動しました。

60人の奇妙な人がこのことを無駄にしたことは、すごく残念です。

ご協力いただきましてありがとうございます。 Windows 2003の愚か

愚かIIS ... ...いつか

+0

アプリケーションプールを再起動するのではなく、再起動するだけで十分です。 – oleschri

+0

あなたはそうだと思いますが、そうではありませんでした。それは私がIISでピン止めすることができなかったファンキーなものと関係しています。追加のメリットは、既存のアプリケーションをあるバージョンの.Netから別のバージョンに移動しようとすると、IISがうんざりになり、シャットダウンされるということです。それから私はリブートしない限り、それは戻ってきません。私がプロセスを殺したとしても。サーバーを再構築する必要があります。私は2k8ボックスを持っていますが、それは後で早く移行する必要があります。 – Rob

+0

サーバを再起動する必要はありません(またはそうであってはならない)。ちょうどスタート - >実行をクリックして、 'iisreset'と打ち込んだ後、IISを再起動するのと同じくらい困難にenterキーを押す。百万頭の頭痛を救った。 – Merlin

0

は、それは簡単ですが、あなたは\ServerName\ShareName\File.flv

を入れて、それは\\ServerName\ShareName\File.flv

最悪のケースではありません、あなたはfile://ServerName/ShareName/File.flvを使用しますが、ローカルファイルに対してあなたが速記file:///C:/path/File.flvを使用する必要があることに注意することができます。

+0

あなたは正しかったです。私は\偶然..私のコードでは実際\\だった。私はファイル://とfile:///を試しましたが、これはSystem.IO.StreamReaderでは機能しません(これが実際の理由です) – Rob

関連する問題