Webブラウザにhttp://127.0.0.1/default.aspxと入力すると、Ubuntu Linux 16.04でdefault.aspx.cs(default.aspx.csを指すコードの後ろにあるコード)のコンパイルが失敗する理由を知りたいです。さらに、MyLinuxTest.csproj には default.aspx.designer.cs ファイルがあります。このファイルはVisual Studioによって自動的に生成され、aspsファイルとasp.csファイルに書き込まれたコードのスキャフォールドとして機能します。これは自動的に生成されるため、このファイルに触れたり変更したりしないでください。
今日、www.monoproject.comのよくある質問でdefault.aspx.csが常にコンパイルされるという内容を読んでいます。数日前、default.aspx.csは変更時に一度だけコンパイルされるという内容を読んでいました。また、Aspx CompilationModeサーバーサイドのスクリプトオプションであるAlways、Auto、およびNeverがあることも読みました。 mod_mono_server4プロセスの正しいコンパイル動作は何ですか?私が使用した用語を修正してください。
これが私が昨日したことです。 C#ルールは、@で始まるクラスの後にはC#キーワードだけが来ることができると規定しているためです。その結果、C#クラスを使用すると、MonoDevelop Xamarin Studio 5.5でもコンパイルが失敗します@default
。エラーを修正するために、クラス名をdefault.aspxとdefault.aspx.designer.csという2つの場所@default
に変更するように指示されましたabcdef
。
これらの変更を行った後、MonoDevelop Tamarin Studio 5.5を使用してMyLinuxTest.csprojをビルドし、MyLinuxTest.dllを作成しました。 Run With Firefoxブラウザを使用してxsp4を起動してテストしましたが、この時点で正常に動作しました。
次に、MyLinuxTest.dllとMyLinuxTest.dll.mdbを本番環境のbinフォルダにコピーしました。 [今日の mono-project.com FAQ ドキュメントでこれらのファイルを次のようにインストールrm MyLinuxTest.dll
する必要があることを読んでいます。cp /home/frankc/Downloads/MyLinuxTest/MyLinuxTest/bin/MyLinuxTest*.* ..
この時点で、Chromeウェブブラウザとhttp://127.0.0.1/default.aspxなどのapache2のmod_mono_server4を使用すると、C#コンパイラエラーが発生します。一時aspx.csは、ASPクラスメソッドdefault_aspxがすでに定義されているため、コンパイルできません。 。 http://127.0.0.1/default.aspxが正しいWebコンテンツを提供するように混乱しているC#コンパイラエラーをどのように修正しますか?必要に応じてASP.NETコードを提供できます。 default.aspxとdefault.aspx.csの名前をHelloWorld.csprojで正常に使用されるDefault.aspxとDefalt.aspx.csに変更する必要がありますか?また、コンパイルプロセスでdefault.aspx.designer.csを復元または削除するにはどうすればよいですか?
答え1
私のクラス名を@defaultから@normalNameに変更するように@svickを提案しようとした後でも、次のエラーメッセージとスタックトレースが表示されます。
詳細: MyLinuxTest.@normalName タイプが見つかりません。
エラーソース:パーサー
Error source file: /var/www/firstaspnet/default.aspx
Exception stack trace:
at System.Web.UI.BaseParser.ThrowParseException (System.String message, System.Object[] parms) <0x40c61680 + 0x00087> in <filename unknown>:0
at System.Web.UI.TemplateParser.SetBaseType (System.String type) <0x40c555c0 + 0x000cf> in <filename unknown>:0
at System.Web.UI.TemplateParser.ProcessMainAttributes (IDictionary atts) <0x40c5fa40 + 0x00bbf> in <filename unknown>:0
at System.Web.UI.TemplateControlParser.ProcessMainAttributes (IDictionary atts) <0x40c5ea50 + 0x00423> in <filename unknown>:0
at System.Web.UI.PageParser.ProcessMainAttributes (IDictionary atts) <0x40c5be30 + 0x02773> in <filename unknown>:0
at System.Web.UI.TemplateParser.AddDirective (System.String directive, IDictionary atts) <0x40c5b720 + 0x0019a> in <filename unknown>:0
at System.Web.UI.TemplateControlParser.AddDirective (System.String directive, IDictionary atts) <0x40c5b190 + 0x00523> in <filename unknown>:0
at System.Web.UI.PageParser.AddDirective (System.String directive, IDictionary atts) <0x40c5acb0 + 0x0046f> in <filename unknown>:0
at System.Web.Compilation.AspGenerator.GetInheritedType (System.String fileContents, System.String filename) <0x40c58000 + 0x003fd> in <filename unknown>:0
at System.Web.Compilation.AspGenerator.GetRootBuilderType (System.IO.Stream inputStream, System.String filename) <0x40c574a0 + 0x000bf> in <filename unknown>:0
at System.Web.Compilation.AspGenerator.CreateRootBuilder (System.IO.Stream inputStream, System.String filename) <0x40c572b0 + 0x0003b> in <filename unknown>:0
at System.Web.Compilation.AspGenerator.InitParser (System.IO.TextReader reader, System.String filename) <0x40c56760 + 0x00353> in <filename unknown>:0
at System.Web.Compilation.AspGenerator.Parse (System.IO.TextReader reader, System.String filename, Boolean doInitParser) <0x40c56360 + 0x00063> in <filename unknown>:0
at System.Web.Compilation.GenericBuildProvider`1[TParser].Parse () <0x40c4fbb0 + 0x000c3> in <filename unknown>:0
at System.Web.Compilation.GenericBuildProvider`1[TParser].GenerateCode () <0x40c4fae0 + 0x00016> in <filename unknown>:0
at System.Web.Compilation.GenericBuildProvider`1[TParser].GenerateCode (System.Web.Compilation.AssemblyBuilder assemblyBuilder) <0x40c4f8d0 + 0x0004c> in <filename unknown>:0
at System.Web.Compilation.BuildManager.GenerateAssembly (System.Web.Compilation.AssemblyBuilder abuilder, System.Web.Compilation.BuildProviderGroup group, System.Web.VirtualPath vp, Boolean debug) <0x40c4ecf0 + 0x002da> in <filename unknown>:0
問題を解決するために見つけたのは、1)すべてのapache2、Mono、およびASP.NETパッケージを正しい順序で再インストールすることです。 2)クラス名を@defaultからabcに変更することでした。
apache2 パッケージを最初にインストールすることが重要です。また、パッケージmono-apache-server4がlibapache2-mod-monoパッケージの前提条件であるため、sudo apt-get install libapache2-mod-monoの前にsudo apt-get install mono-apache-server4をインストールする必要があります。