C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: asp.netで画像描画


(過去ログ 136 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■80363 / inTopicNo.1)  asp.netで画像描画
  
□投稿者/ 国方賢治 (3回)-(2016/07/11(Mon) 13:56:51)

分類:[ASP.NET (VB)] 

mappathを使うと、デバッグでは成功して、喜んだのですが、デプロイして、iisマネージャーを使って実行すると、次のようなエラーメッセイジが
でました。


HTTP エラー 403.14 - Forbidden

Web サーバーは、このディレクトリの内容の一覧を表示しないように構成されています。



可能性のある原因:
&#8226;既定のドキュメントは要求された URL に対して構成されていません。ディレクトリの参照がサーバーで有効にされていません。



対処方法:
&#8226;ディレクトリの参照を有効にしない場合は、既定のドキュメントが構成され、ファイルが確実に存在するようにします。
&#8226;IIS マネージャーを使用して、ディレクトリの参照を有効にします。1.IIS マネージャーを開きます。
2.[機能] ビューで [ディレクトリの参照] をダブルクリックします。
3.[ディレクトリの参照] ページの操作ウィンドウで [有効にする] をクリックします。

&#8226;サイトまたはアプリケーション構成ファイルで configuration/system.webServer/directoryBrowse@enabled 属性が True に設定されていることを確認します。



エラー情報の詳細:



モジュール
DirectoryListingModule

通知
ExecuteRequestHandler

ハンドラー
StaticFile

エラー コード
0x00000000



要求された URL
http://localhost:80/pyramidwp3/

物理パス
C:\inetpub\wwwroot\pyramidwp3\

ログオン方法
匿名

ログオン ユーザー
匿名

 これに従って、iisマネージャーで、ディレクトリの参照を有効ににすると、目的の画像は表示されず、なにやら、一覧が表示されただけです。
  
  もう一つの対処方法として、direkutorybrowsese@enable属性を確かめたのですが、web.configには、その項目はありませんでした。
 自分でつくってもいいのでしょうか。

 非常に困っています。助けてください。



引用返信 編集キー/
■80364 / inTopicNo.2)  Re[1]: asp.netで画像描画
□投稿者/ WebSurfer (960回)-(2016/07/11(Mon) 14:49:13)
No80363 (国方賢治 さん) に返信

前のスレッドもそうだったんですが説明不十分です。

今提供されている情報だけでは、エスパーではない自分に想像できるのは、

(1) IIS Express と IIS のワーカープロセスのアクセス権の違いによる問題?

(2) 「iisマネージャーを使って実行」というのはダウンロードするページを要求したのでは
  なくアプリケーションルートディレクトリを要求したということ? そして、そこに規
  定のドキュメントがないので「Web サーバーは、このディレクトリの内容の一覧を表示
  しないように構成されています。」というエラーになった?

・・・という程度です。

上記の想像では質問者さんの望む回答になっていないのであれば、もっと情報を出してください。

具体的には、例えば、公開できる範囲で質問者さんが作成したコード、「デバッグ」と「iisマ
ネージャーを使って実行」の具体的な違いは何かです。


回答者は掲示板に書いてあること以外は質問者さん状況は知り得ないということを認識していた
だき、どういう情報を提供すれば回答者が質問者さんの状況を的確に把握でき、ピンポイントで
的を得た回答ができるかをよく考えて、質問を書いていただくようお願いします。

以下の記事を参考に、そのあたりを考えていただければと思います。

技術系メーリングリストで質問するときのパターン・ランゲージ
http://www.hyuki.com/writing/techask.html
引用返信 編集キー/
■80374 / inTopicNo.3)  Re[2]: asp.netで画像描画
□投稿者/ 国方賢治???????? (1回)-(2016/07/12(Tue) 13:08:45)
No80364 (WebSurfer さん) に返信
> ■No80363 (国方賢治 さん) に返信
>
> 前のスレッドもそうだったんですが説明不十分です。
>
> 今提供されている情報だけでは、エスパーではない自分に想像できるのは、
>
> (1) IIS Express と IIS のワーカープロセスのアクセス権の違いによる問題?
>
> (2) 「iisマネージャーを使って実行」というのはダウンロードするページを要求したのでは
>   なくアプリケーションルートディレクトリを要求したということ? そして、そこに規
>   定のドキュメントがないので「Web サーバーは、このディレクトリの内容の一覧を表示
>   しないように構成されています。」というエラーになった?
>
> ・・・という程度です。
>
> 上記の想像では質問者さんの望む回答になっていないのであれば、もっと情報を出してください。
>
> 具体的には、例えば、公開できる範囲で質問者さんが作成したコード、「デバッグ」と「iisマ
> ネージャーを使って実行」の具体的な違いは何かです。
>
>
> 回答者は掲示板に書いてあること以外は質問者さん状況は知り得ないということを認識していた
> だき、どういう情報を提供すれば回答者が質問者さんの状況を的確に把握でき、ピンポイントで
> 的を得た回答ができるかをよく考えて、質問を書いていただくようお願いします。
>
> 以下の記事を参考に、そのあたりを考えていただければと思います。
>
> 技術系メーリングリストで質問するときのパターン・ランゲージ
> http://www.hyuki.com/writing/techask.html
引用返信 編集キー/
■80375 / inTopicNo.4)  Re[1]: asp.netで画像描画
□投稿者/ 魔界の仮面弁士 (765回)-(2016/07/12(Tue) 14:34:51)
No80363 (国方賢治 さん) に返信
> mappathを使うと、デバッグでは成功して、喜んだのですが、

MapPath で得た文字列を、どのように使用されていますか?
MapPath メソッドは、(サーバーからみた場合の)物理パスを返すものであり、
それ自体は、画像の表示に直接は関係しないはずです。


たとえば、images というサブフォルダーに pyramid.png が置いてあるとして、
その画像を(クライアントが)表示するためには、ブラウザー側から
 http://localhost/pyramidwp3/images/pyramid.png
のような URL がリクエストされる必要があるでしょう。

一方、MapPath メソッドの動作というのは、例えば
 Label1.Text = Server.MapPath("./images/pyramid.png")
を呼ぶと、「C:\WebSites\WebSite1\pyramidwp3\images\pyramid.png」などの
文字列を返すというものですね。



> Web サーバーは、このディレクトリの内容の一覧を表示しないように構成されています。
そのエラーが生じるパターンとしては、たとえば
 http://localhost/pyramidwp3/images/pyramid.png
という URL が本来リクエストされるべき箇所で、誤って
 http://localhost/pyramidwp3/images/
がリクエストされている状態などが考えられます。
(どうしてその URL がリクエストされているのかは、コードを見ないと分かりませんが)


そしてこのように、URL のファイル名が省略されてアクセスされた場合、
そのディレクトリにある「既定のドキュメント」が表示されます。

具体的には、index.html や index.aspx などといったファイルが
順に走査されるわけですが、そのいずれも見つからなかった場合には
ディレクトリの一覧情報が返却される仕様になっています。

しかし一般的には、一覧表示しない構成になっている(その方が望ましい)ので、
「ディレクトリの内容の一覧を表示しないように構成されています」として
エラーが報告されることになります。


今回のケースでは、そもそもリクエストされている URL が
誤っている可能性を疑ってみてください。


> http://localhost:80/pyramidwp3/

恐らくは URL の間違いであると想像しますが、仮に、
リクエストされている上記 URL が正しいのだとしたら、
これは「画像」ではないので、対応する画像ファイルそのもの、もしくは
画像バイナリを表示させるための ASP.NET ページを、
「既定のドキュメント」として用意する必要があります。

表示するためのファイルは、あらかじめ配置しておいて下さい。
ファイルを設定する方法は下記が参考になるかと思います。

IIS 6.0 以下 の場合
http://www.wanichan.com/web/frontpage/faq/web/08.htm
http://mizushima.ne.jp/Windows/HTTP/IIS/IIS-setting.php


IIS 7.0 以上 の場合
http://hide36.k113.net/IIS7/iis7_02_http_1.html
http://mtgiis.blogspot.jp/2013/02/blog-post_9.html




> これに従って、iisマネージャーで、ディレクトリの参照を有効ににすると、
> 目的の画像は表示されず、なにやら、一覧が表示されただけです。

そもそも、http://localhost:80/pyramidwp3/ が要求されることが
不自然に思えます。その URL はどのページからリクエストされていますか?


> web.configには、その項目はありませんでした。
個別の web.config で上書きされる設定もありますが、
通常、IIS の設定は ApplicationHost.config に記載されます。
https://msdn.microsoft.com/ja-jp/library/ee431610.aspx

コンフィグレーション ファイルの直接編集が難しい場合は、
設定コマンドを使うか、IIS マネージャーを通じて設定してみてください。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -