- PR -

IISの仮想フォルダで「bin」フォルダが使用できない

投稿者投稿内容
Hoppy
常連さん
会議室デビュー日: 2005/05/30
投稿数: 29
投稿日時: 2005-12-09 11:22
いつもお世話になっております。

現在、NTDを使用したexeファイルの配布を行わせようとしています。
仮想フォルダとして設定したフォルダ配下に「bin」というフォルダがあり、
その配下へexeファイルを配置しているのですが、なぜかこの「bin」フォルダ
に配置したファイルにブラウザからアクセスするとHTTPエラー(404)が
発生してしまいます。
このエラーはexeファイルだけでなく、htmlファイルやテキストファイルでも同様の
エラーが発生します。

「bin」フォルダに対するアクセス権が原因かと思い、"NETWORK SERVICE"、
"インターネットゲストアカウント"、"ASP.NETコンピュータアカウント"等
のアカウントを追加し、フルコントロールの権限を与えてみたのですが結果は
変わりませんでした。
(最終的には"Everyone"に対しフルコントロールでもダメでした)

「bin」フォルダに対するアクセス権限およびIISの設定を変えずに、
別の名前(例えば「bin2」等)に変更するとHTTPエラーは発生せずに
正常にアクセス可能となります。
とりあえず「bin」という名前のフォルダをやめて別名で運用することにしましたが、
なぜこのような現象が起こるのか不明でしたので投稿させていただきました。

環境は以下となっています。
 OS:Windows Server 2003 StdEd SP1
 IISバージョン:6.0

どなたかご存知の方いましたらご教授願います。
よろしくお願いいたします。
Mattun
ぬし
会議室デビュー日: 2004/08/10
投稿数: 1391
投稿日時: 2005-12-09 12:28
手元だと、WindowsServer2003(SPなし)およびWindows2000ServerSP4では
再現しませんでした。

・SP1の影響
 http://www.microsoft.com/downloads/details.aspx?FamilyId=B883B02C-D485-479C-8AA6-EDB20CD4C66E&displaylang=ja
 の資料だと、そういうのは無かった気がする
・IIS LockdownやURLScanの影響
 そういうポリシーは無かった気がする
・その他製品の影響

あたりが考えられますが、
IISのログやイベントログには何か書かれてませんか?
_________________
Mattun
Microsoft MVP for Directory Services
(Oct 2006-Sep 2007)
Hoppy
常連さん
会議室デビュー日: 2005/05/30
投稿数: 29
投稿日時: 2005-12-09 13:12
Mattunさん返信ありがとうございます。

引用:

IISのログやイベントログには何か書かれてませんか?




IISのログには指定URLに対するステータス(404)のログが出力されている
だけで、イベントログには何も出力されていませんでした。

IISにて「bin」のフォルダに対して実行アクセス許可を
"スクリプトおよび実行可能ファイル"に設定すると、htmlファイルやテキストファイル
へのアクセスは行えることが確認できました。
しかし、依然exeファイルは404のHTTPエラーが発生してアクセスできない状態です。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2005-12-09 23:06
引用:
 OS:Windows Server 2003 StdEd SP1
 IISバージョン:6.0



なので、当然 .NET Framework は初期状態で導入されていますね。

「仮想ディレクトリ」 を Application として構成してしまうと、
.NET 用に構成され、bin は特殊な Directory として扱われます。
# 具体的には、そこに配置した .NET dll は
# Registry に登録しなくても使えるようになります。

なので、「仮想ディレクトリ」 の設定で、
「アプリケーション名」を削除してください。

それがいやであるならば、別の Directory name に変更しましょう。
Hoppy
常連さん
会議室デビュー日: 2005/05/30
投稿数: 29
投稿日時: 2005-12-12 09:18
ちゃっぴさま返信ありがとうございます。
また、返事が遅くなり申し訳ありませんでした。

引用:

なので、当然 .NET Framework は初期状態で導入されていますね。



はい、.NET Framework(Ver:1.1 SP1)がインストールされています。

引用:

なので、「仮想ディレクトリ」 の設定で、
「アプリケーション名」を削除してください。

それがいやであるならば、別の Directory name に変更しましょう。



アプリケーション名を削除してみたのですが状況は変わりませんでした。
(「ページが見つかりません」のHTTPエラーが表示されてしまいます。)
何か当方の設定に問題があるのでしょうか?
ちなみに「実行アクセル許可」は
"スクリプトのみ"、"スクリプトおよび実行可能ファイル"
のどちらに設定してもダメでした。

また、IISルート(C:\\Inetpub\\wwwroot\\)配下へ「bin」フォルダを作成し、
exeファイル等を配置した場合には問題なくダウンロードが出来ます。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2005-12-13 00:16
引用:
アプリケーション名を削除してみたのですが状況は変わりませんでした。
(「ページが見つかりません」のHTTPエラーが表示されてしまいます。)



Browser を再起動してつなぎにいってみてください。
私の環境、Windows Server 2003 SP1 では、
アプリケーション名 の削除で間違いなくつながるようになりますので・・・
Hoppy
常連さん
会議室デビュー日: 2005/05/30
投稿数: 29
投稿日時: 2005-12-13 09:00
ちゃっぴさま度々の返信ありがとうございます。
ブラウザを再起動してもIISを再起動してもダメでした。

以下の環境で操作を行っていますが、何かおかしなところがあるのでしょうか??

1.「D:\\Test\\bin」のフォルダを作成し、その配下へexeファイルを格納。
2.IISのルート配下へ"Test"というエイリアス名の仮想ディレクトリを作成し、
  「D:\\Test」のフォルダを割り当て。
3.IISマネージャより上記にて作成した仮想ディレクトリのプロパティを開き、
  仮想ディレクトリタブ内、アプリケーション名の隣にある削除ボタンをクリック
  してアプリケーション名を削除。
ハル
常連さん
会議室デビュー日: 2003/02/12
投稿数: 22
投稿日時: 2005-12-17 20:43
試したことありませんが、以下のドキュメントが関係あるかもしれないですね。


All requests with /bin in the URL are rejected and return a 404 error (IIS 6.0)
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/54e9382b-743d-495e-a324-b8b57a5214ee.mspx

スキルアップ/キャリアアップ(JOB@IT)