🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

1回答

4945閲覧

Visual Studioで発行したWebサイトをIISに追加して検証したい

entaro12345

総合スコア75

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2019/12/19 10:26

編集2019/12/20 00:19

前提・実現したいこと

Visual Studioで発行したWebサイト(ASP.Net)をIIS(自分のPCのローカルIIS)に追加して検証したいです。
Visual StudioでWebサイトの発行をしてIISにサイト追加をしました。
いざ参照をすると500エラーになってしまい、表示ができません。

[発行の手順]
Visual Studio上のプロジェクト右クリック→@発行]を選択→発行先で[フォルダー]を選択
上記手順で発行したWebサイトをIIS上に追加しました。

[フォルダ構成]
bin
common(css/js/imageが入ってます)
Global.asax
Views→フォルダ(各種.cshtmlファイルが入ってます)
Views→web.config(プロジェクト作成時に生成されたままです)
※Viewsフォルダ配下にプロジェクトフォルダとweb.configが配置されています。
Web.config

お力添えをお願いいたします。

発生している問題・エラーメッセージ

HTTP Error 500.19 - Internal Server Error この構成セクションをこのパスで使用できません。 この問題は、親レベルでセクションがロックされているときに発生します。 ロック状態は既定で設定されているか (overrideModeDefault="Deny")、 または overrideMode="Deny" もしくは従来の allowOverride="false" を含んだ場所タグによって明示的に設定されます。

イメージ説明

試したこと

改善法を調べて、
「C:\Windows\System32\inetsrv\config」配下にあるapplicationHost.configファイルを下記に変更しました。

<section name=”modules” allowDefinition=”MachineToApplication” overrideModeDefault=”Deny” />
↓↓↓
<section name=”modules” allowDefinition=”MachineToApplication” overrideModeDefault=”Allow” />

補足情報(FW/ツールのバージョンなど)

OS Windows10 Home
Visual Studio 2017(.Net Framework 4.7.1)
ASP.NET

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/12/19 10:34

その Web サイトとは何なのですか? Visual Studio で開発した ASP.NET Web アプリ? 発行したとのことですが、具体的にどのようにやったのですか? ちゃんと書きましょうよ。回答者の想像に期待しないで。
entaro12345

2019/12/19 10:43

失礼しました。 ASP.Netで手順については、追記します。
退会済みユーザー

退会済みユーザー

2019/12/19 11:08 編集

自分の開発マシンのローカル IIS を使いたいのですか? Windows 10 のエディションは Pro ですよね? ASP.NET は Core ベースですか、.NET Framework ベースですか? Windows の機能の有効化で ASP.NET をホストできる設定にしてますか? ASP.NET のタグを付けてください。
entaro12345

2019/12/19 11:11

自分のマシンのローカルIISを使いたいです。 Windows 10 Homeです。 .Net Framework4.7.1です。 追記します。 すみません。
退会済みユーザー

退会済みユーザー

2019/12/19 11:21 編集

Home では IIS は使えないはずです。使えるけどデバッグができないのだったかもしれません。
entaro12345

2019/12/19 23:58

画像を添付しました。 エラーコードは、「0x80070021」です。 恐れ入りますが、何か情報いただけますと幸いです。
entaro12345

2019/12/20 00:35 編集

少し進展しましたので、ご報告させていただきます。 ※フォルダ構成を追記します。 ・Views配下のweb.configを一旦外してみたところ500エラーは解消されましたが、ページ表示には至っておりません。
退会済みユーザー

退会済みユーザー

2019/12/20 01:23 編集

MVC5 ですよね? View フォルダの web.config を全部外すのではなく、引っかかっている部分、即ち以下の記述があると思いますが、それのみコメントアウトして試したらどうなりますか? <handlers> <remove name="BlockViewHandler"/> <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" /> </handlers> 上記は、Views 内のファイルが要求されたときに Not Found を返すための HTTP ハンドラだそうです。<handlers> セクションは applicationHost.config で下位の構成ファイルでは書き換え禁止になっているので、それが引っかかっているのではないかと思われます。ただ、開発環境の IIS Express で問題ないとすると解せないのですが。とりあえず試して結果を連絡ください。
entaro12345

2019/12/20 01:39

ご連絡ありがとうございます。 ご指摘の通りの箇所をコメントアウトしたら500エラーは解消されました。
退会済みユーザー

退会済みユーザー

2019/12/20 01:43

コンテンツの表示は期待通りできているのですか?
entaro12345

2019/12/20 01:46 編集

ページの表示ができておりません。 404エラーで、 ーーーーー Module IIS Web Core Notification MapRequestHandler Handler StaticFile Error Code 0x80070002 ーーーーー が出ております。 何かわかりますでしょうか? マッピングができていない感じですかね?
退会済みユーザー

退会済みユーザー

2019/12/20 01:57 編集

そのメッセージは静的ファイルを要求したが見つからないと言ってます。でも、あなたが一体何をした結果そうなったのか、その原因は何かは分かりません。自分はエスパーではないので、質問に書いてないことは分かりません。 前のコメントで「Windows の機能の有効化で ASP.NET をホストできる設定にしてますか?」と聞いたことに返事がないのですが、そのあたりは確認したのですか?
entaro12345

2019/12/20 02:11 編集

コメントいただいていたのに失礼いたしました。 「Windows の機能の有効化で ASP.NET をホストできる設定」は設定してました。 先ほど、表示ができました。 →単純にパスがミスしていました。 本当にありがとうございました。 助かりました。 ベストアンサーとして選ばせていただきたいので、回答をしていただけないでしょうか?
退会済みユーザー

退会済みユーザー

2019/12/20 02:57 編集

上の 2019/12/20 10:22 の私のコメント(web.config の <handlers> をコメントアウト)を解決策とするのは、開発環境だからとりあえずの対症療法で良いということであっても、あまり感心できないです。 web.config の <handlers> をコメントアウトは解決策としての提案ではなく、とりあえず試してそれが問題か否かの確認をお願いしたということです。 上に書きましたように、それは Views 内のファイルが要求されたときに Not Found を返すための HTTP ハンドラを登録するもの・・・即ちセキュリティ対策です。なので、そこは生かして別の手段で対応する方がよさそうです。 質問の「試したこと」の効果が無かったのは、引っかかっていたのが modules ではなく handlers だったからだと思います。そこを直す方が web.config の <handlers> をコメントアウトするよりはよさそうです。そこを直すの「そこ」とは applicationHost.config の <section name="handlers" overrideModeDefault="Deny" /> です。 ただ、自分の環境ではそんなことは一切しなくても(web.config の <handlers> も applicationHost.config の <section name="handlers" overrideModeDefault="Deny" /> もデフォルトで設定されたまま何も変えなくても)、開発マシンの IIS Express でもローカル IIS 10 でも問題なく動くので、そのあたりの理由が分からないとやはり対症療法ですが。
退会済みユーザー

退会済みユーザー

2019/12/20 04:55

> ベストアンサーとして選ばせていただきたいので、回答をしていただけないでしょうか? 上の 2019/12/20 10:22 の私のコメント(web.config の <handlers> をコメントアウト)をベストアンサーにするのは上に書いたように抵抗があります。 せめて、 applicationHost.config の <section name="handlers" overrideModeDefault="Deny" /> を書き換える案にしたいのですが、その案の質問者さん環境での検証に協力いただけませんか?
entaro12345

2019/12/20 06:28

遅くなりました。 コメントアウトした部分を戻してみましたが、問題なく動作していることが確認できました。 >せめて、 applicationHost.config の <section name="handlers" overrideModeDefault="Deny" /> >を書き換える案にしたいのですが、その案の質問者さん環境での検証に協力いただけませんか? 上記案をご提案いただいたということでしょうか?
退会済みユーザー

退会済みユーザー

2019/12/20 07:16

検証いただきありがとうございました。 大変お手数ですが、その最終的な解決策を回答欄に書いて、その方法で解決したということでクローズしていただけますようお願いします。
guest

回答1

0

自己解決

「C:\Windows\System32\inetsrv\config」配下にあるapplicationHost.configファイルを下記に変更しました。
<section name=”modules” allowDefinition=”MachineToApplication” overrideModeDefault=”Deny” />
↓↓
<section name=”modules” allowDefinition=”MachineToApplication” overrideModeDefault=”Allow” />

試したことに記述した通りで解決できていました。
※パスを誤っていたため、表示ができていませんでした。

投稿2019/12/20 07:42

編集2019/12/20 07:43
entaro12345

総合スコア75

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/12/20 10:05

それは間違いないですか? 質問にアップされていた画像を見ると、引っかかっていたのは modules ではなくて handlers のはずなのですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問