none
Menuコントロールが、IIS7.0で使えない。 RRS feed

  • 質問

  • 会社でVS2008WebDeveloper、自宅でVS2005にてWebアプリを製作中。

     

    マスターページに「Menuコントロール」を配置、データソースにはWeb.sitemapを指定。開発環境では動作するのですが、IIS7.0に配備し、ローカルで実行するとコントロール自体は表示されるが、動的に展開する部分が機能しないという状況です。

     

    また、「Loginコントロール」に関してはIIS7.0に配備し、同PCに於いてのローカル環境では機能するが、他PCからのアクセスではうまくいきません。

     

    どなたか、ご指南頂けないでしょうか。

    2008年2月13日 12:46

回答

  • 直感ですが「構成ファイルが正しい設定になっていない」気がします。

     

    1つ目の課題が解決したようですね。

    ちなみに「構成ファイル」=Web.Configですね。

    IISマネージャから編集することで構成ファイルが更新されるはずです。

     

    2つ目について、状況を切り分けていきましょう。

     

    >ただ、やはり他PCからのアクセスに於けるログインはうまくいきません。

    ログインがうまくいかないのでしょうか。それともWebサイト自体が表示されないのでしょうか

    http://vista-machine/ とPCをまたいでリクエストした時にHTTPのログは出力されますか?

    (IISが有効であり、ファイアウオールなどによりHTTP ポート番号80(もしくは任意のポート)

     がふさがれていなければ多言語での「IIS7ようこそ」画像が表示されるはずです。)

    ログは規定値のままであればC:\inetpub\logs\LogFiles\ に出力されます。

     

    うまくいかない時はブラウザ上にどのように表示されているかお聞かせください。

    (IIS7とVWD2008の組み合わせではうまくログインが動作していましたので現象が確認できていません。)

     

     

     

    2008年2月18日 14:15

すべての返信

  •  

    Menuコントロールについては動的に展開する部分はJavascriptによって実現しています。

    動作を確認しているWebブラウザでJavascriptが有効になっているかどうかを確認してみてください。

     

    参考までに:HTMLソースで以下のような部位が確認できると思います。

    Code Snippet
    <script src="/msdn-forum/WebSite1/WebResource.axd?d=tsRwEYubJyDYiv2dUL5daQ2&amp;t=633296406360000000" type="text/javascript"></script>

     

     

     

    以下の手順で問題なく「動的に展開する部分が機能」していました。

    ・新しいサイトを作成

    ・default.aspxファイルの削除

    ・Web.sitemapを作成

    ・同ファイルにサイトマップ情報を追記

    ・Masterpage.Masterを作成

    ・同ファイルにMenuコントロールを追加

    ・メニューコントロールのデータソースの選択>新しい...>サイトマップ を選択

    ・default2.aspxファイルの作成(マスターページを使用)

    動作確認

     

    Loginコントロールについては、どのような手順でこのような状態になっているかが

    想像できないので、再現手順を提示していただけませんでしょうか。

    2008年2月13日 14:03
  • Mooさん、ご指摘ありがとうございます。

    返信が遅くて済みません。

     

    そこで早速ブラウザの「スクリプトのデバッグを表示する」に設定して試したところ、

    やはりスクリプトエラーが出ました。

     

    まだ、解決は出来ていませんが後日変化あり次第投稿します。

     

    2008年2月17日 23:07
  • 解決。

     

    今一度、アクセスしてみたところサーバエラーで「この要求を処理するには、WebResource.axd を構成ファイルに登録しなければなりません。」というメッセージが出たので、IISマネージャにてハンドラマッピングに追加したところ問題なく動作するようになりました。

     

    ただ、やはり他PCからのアクセスに於けるログインはうまくいきません。

    思い当たるのこととしては、ユーザ情報などを格納している「ASPNETDB.MDF」が問題なのかということぐらいです。

    2008年2月18日 13:21
  • 直感ですが「構成ファイルが正しい設定になっていない」気がします。

     

    1つ目の課題が解決したようですね。

    ちなみに「構成ファイル」=Web.Configですね。

    IISマネージャから編集することで構成ファイルが更新されるはずです。

     

    2つ目について、状況を切り分けていきましょう。

     

    >ただ、やはり他PCからのアクセスに於けるログインはうまくいきません。

    ログインがうまくいかないのでしょうか。それともWebサイト自体が表示されないのでしょうか

    http://vista-machine/ とPCをまたいでリクエストした時にHTTPのログは出力されますか?

    (IISが有効であり、ファイアウオールなどによりHTTP ポート番号80(もしくは任意のポート)

     がふさがれていなければ多言語での「IIS7ようこそ」画像が表示されるはずです。)

    ログは規定値のままであればC:\inetpub\logs\LogFiles\ に出力されます。

     

    うまくいかない時はブラウザ上にどのように表示されているかお聞かせください。

    (IIS7とVWD2008の組み合わせではうまくログインが動作していましたので現象が確認できていません。)

     

     

     

    2008年2月18日 14:15
  • 早速の投稿ありがとうございます。

     

    ご指摘の通りログを確認したところ以下のようになっていました。

     

     

    2008-02-19 11:56:01 192.168.0.2 POST /customermng/Default.aspx - 80 - 192.168.0.3 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+3.0.04506.590;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.04506.648;+.NET+CLR+3.5.21022) 302 0 0
    2008-02-19 11:56:01 192.168.0.2 GET /customermng/authUsers/LoginTop.aspx - 80 - 192.168.0.3 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+3.0.04506.590;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.04506.648;+.NET+CLR+3.5.21022) 302 0 0
    2008-02-19 11:56:01 192.168.0.2 GET /customermng/login.aspx ReturnUrl=%2fcustomermng%2fauthUsers%2fLoginTop.aspx 80 - 192.168.0.3 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+3.0.04506.590;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.04506.648;+.NET+CLR+3.5.21022) 200 0 0

     

     

    どうやらログインに失敗しているようです。

    開発環境及び同一PCからのローカルアクセスではログイン出来ます。

    2008年2月19日 12:21
  • >どうやらログインに失敗しているようです

    というのは何を見て判断されましたか?

    コードをエラーメッセージを見ずに回答しているので

    対応策について何とも言えません。

    2008年2月19日 14:16
  • 早速失礼します。

    VIsualWebDeveloper2008にて、Default.aspxにログインコントロール、ログインビューを配置。

    authUsersフォルダを作りそこにLoginTop.aspxを置く。

     

    ログインコントロールのDestinationPageUrlプロパティにLoginTop.aspxを指定。

     

    ログインビューコントロールのAnonymousTemplateプロパティに「匿名ユーザでログイン」を指定。

     

    ユーザを「一般」で「user」を作成。

     

    アクセス規則の管理で、「authUsers」フォルダに対して

    1.「一般」を許可。

    2.「匿名」を拒否。

    と指定。

     

    そこで、

    2008-02-19 11:56:01 192.168.0.2 POST /customermng/Default.aspx - 80 - 192.168.0.3 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+3.0.04506.590;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.04506.648;+.NET+CLR+3.5.21022) 302 0 0

    ここの部分がトップページの呼び出しで、

     

    次いで
    2008-02-19 11:56:01 192.168.0.2 GET /customermng/authUsers/LoginTop.aspx - 80 - 192.168.0.3 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+3.0.04506.590;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.04506.648;+.NET+CLR+3.5.21022) 302 0 0

    この部分でログインし

     

    ここで、リクエストが「login.aspx」になっているのでログインに失敗したと思われる。
    2008-02-19 11:56:01 192.168.0.2 GET /customermng/login.aspx ReturnUrl=%2fcustomermng%2fauthUsers%2fLoginTop.aspx 80 - 192.168.0.3 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+3.0.04506.590;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.04506.648;+.NET+CLR+3.5.21022) 200 0 0

    ちなみに、Login.aspxはDefault.aspxにリダイレクトするように設定しているので結果初期画面に戻ります。

     

    2008年2月20日 12:07
  • 解決。

     

    原因は2つ。

     

    どちらもIISマネージャの「認証」の「フォーム認証設定の編集」で、

     

    一つ目は「ログインURL」の設定において、実際にログインコントロールを配置したページを設定すべきを

    していなかった。

     

    もう一つは、「クッキーの設定」の「モード」において、「デバイスプロファイルを使用」から「自動検出」に

    変更。

     

    以上で何とか動作を確認。

     

     

    2008年3月1日 14:07
  • こんにちは。中川俊輔 です。

     

    Mooさん、回答ありがとうございます。

     

    D♭さん、フォーラムのご利用ありがとうございます。

    有用な情報と思われたため、勝手ながらMooさんの回答へ回答済みチェックをつけさせていただきました。

     

    回答済みチェックが付くことにより、有用な情報を探している方が情報を見つけやすくなります。
    有用な情報と思われる回答があった場合は、なるべく回答済みボタンを押してチェックを付けてください。

    D♭さんはチェックを解除することもできますので、ご確認ください。

     

    それでは!

    2008年3月5日 8:07