前提・実現したいこと
お世話になっております。
Docker初心者です。
ローカル端末にDockerを2つ立ち上げて、
1つはWebサーバ役としてIIS(Docker)
もう1つはDBサーバ役としてSQLServer(Docker)とし
ホストからIEでC#.netで作成したサイトを参照したいです。
今詰まっているのは、Docker(IIS)を立ち上げると
簡単なsample.htmlやsample.aspxはIE上から参照できるようになったのですが、
VisualStudioでビルドしたtestプロジェクトを参照しようとすると
IEの画面にエラーが表示されます。
Web.configの記載がまずいのかと記載方法を変えたりと
苦慮していますがエラーが出る状況です。
修正ポイントがまずいのでしょうか?
ご教授くださいますようお願い致します。
Web.config①~③で動作させたときのエラー①~③が以下です。
Web.config①…VisualStudioで単純にビルド
Web.config②…本番環境で動いているWeb.configからDB設定などを除去したもの
Web.config③…エラー②の指摘箇所を除去したもの
IISDockerのファイル構成
C:\inetpub\wwwroot
□□┗sample
□□□□┗sample.aspx
□□□□┗sample.html
□□┗test
□□□□┗bin
□□□□┗test.aspx
□□□□┗Web.config
ソースコード(Web.config①)
<?xml version="1.0" encoding="utf-8"?> <!-- ASP.NET アプリケーションの構成方法の詳細については、 https://go.microsoft.com/fwlink/?LinkId=169433 を参照してください --> <configuration> <system.web> <customErrors mode="Off" /> <compilation targetFramework="4.0" /> </system.web> </configuration>
発生しているエラー①
'/' アプリケーションでサーバー エラーが発生しました。 パーサー エラー 説明: この要求の処理に必要なリソースの解析中にエラーが発生しました。以下の解析エラーの詳細を確認し、ソース ファイルに変更を加えてください。 パーサー エラー メッセージ: 型 'test.test' を読み込めませんでした。 ソース エラー: 行 1: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test.aspx.cs" Inherits="test.test" %> 行 2: 行 3: <!DOCTYPE html> ソース ファイル: /test/test.aspx 行: 1 バージョン情報: Microsoft .NET Framework バージョン:4.0.30319; ASP.NET バージョン:4.8.4250.0
ソースコード(Web.config②)
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.web> <customErrors mode="Off" /> <compilation targetFramework="4.0" /> <authorization> <deny users="?" /> <allow users="*" /> </authorization> <trust level="Full" originUrl="" /> <webServices> <protocols> <add name="HttpSoap" /> <add name="HttpGet" /> <add name="HttpPost" /> </protocols> </webServices> </system.web> <system.webServer> <modules runAllManagedModulesForAllRequests="true" /> </system.webServer> </configuration>
発生しているエラー②
'/' アプリケーションでサーバー エラーが発生しました。 構成にエラーがあります。 説明: この要求を処理するために必要な構成ファイルの処理中にエラーが発生しました。以下のエラーの詳細を確認し、構成ファイルに変更を加えてください。 パーサー エラー メッセージ: アプリケーション レベルを超えて allowDefinition='MachineToApplication' として登録されているセクションを使うことはできません。このエラーは、仮想ディレクトリが IIS でアプリケーションとして構成されなかった場合に発生します。 ソース エラー: 行 8: <allow users="*" /> 行 9: </authorization> 行 10: <trust level="Full" originUrl="" /> 行 11: <webServices> 行 12: <protocols> ソース ファイル: C:\inetpub\wwwroot\test\web.config 行: 10 バージョン情報: Microsoft .NET Framework バージョン:4.0.30319; ASP.NET バージョン:4.8.4250.0
ソースコード(Web.config③)
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.web> <customErrors mode="Off" /> <compilation targetFramework="4.0" /> <authorization> <deny users="?" /> <allow users="*" /> </authorization> <webServices> <protocols> <add name="HttpSoap" /> <add name="HttpGet" /> <add name="HttpPost" /> </protocols> </webServices> </system.web> <system.webServer> <modules runAllManagedModulesForAllRequests="true" /> </system.webServer> </configuration>
発生しているエラー③
'/' アプリケーションでサーバー エラーが発生しました。 アクセスが拒否されました。 説明: この要求の処理に必要なリソースにアクセスしようとしてエラーが発生しました。要求された URL へのアクセスがサーバーで構成されていない可能性があります。 エラー メッセージ 401.2: 許可されていません: サーバー構成によりログオンに失敗しました。指定された資格情報に基づいてこのディレクトリまたはページを表示するためのアクセス許可があること、および認証方法が Web サーバーで有効になっていることを確認してください。詳細については、Web サーバーの管理者に問い合わせてください。 バージョン情報: Microsoft .NET Framework バージョン:4.0.30319; ASP.NET バージョン:4.8.4250.0
試したこと
ホストのIISでも同じ現象が出るか試すと
エラー①は異なりましたが、エラー②③は同現象でした。
ちなみにVisualStudioでのビルドの手順は以下です。
1.新しいプロジェクト作成
2.「asp.net Webアプリケーション(.net framework)」を選択
3.プロジェクト名、ソリューション名共に「test」
補足情報(FW/ツールのバージョンなど)
Microsoft Visual Studio Solution File, Format Version 12.00
VisualStudioVersion = 16.0.29020.237
以下を参考にdocker環境作成
https://www.kinakomotitti.net/entry/2018/02/06/084222
ソースコード(test.aspx)
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test.aspx.cs" Inherits="test.test" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> <div> TESTフォーム!!! </div> </form> </body> </html>
回答1件
あなたの回答
tips
プレビュー