1

Razor ビューにアクセスしようとすると、HttpCompileException が発生します。エラー ログに情報が含まれていません。同じ展開は NGinx+FastCGI では機能しますが、Apache+mod_mono では機能しません。

mod_mono AutoConfiguration を使用していないのは、それを機能させる方法を (まだ) 見つけていないためです。

これは、モノの「手動」apache2.conf構成です。

MonoAutoApplication disabled
AddHandler mono .aspx .ascx .asax .ashx .config .cs .asmx .axd
MonoApplications "/:/var/www/MyAppName"
<Location />
    SetHandler mono
</Location>

これは、かみそりビューにアクセスしようとしたときに発生するエラーです。

System.Web.HttpCompileException: External exception
  at ServiceStack.Razor.Compilation.RazorPageHost.Compile () [0x00000] in <filename unknown>:0 
  at ServiceStack.Razor.Managers.RazorPageResolver.EnsureCompiled (ServiceStack.Razor.Managers.RazorPage page, IHttpResponse response) [0x00000] in <filename unknown>:0 
  at ServiceStack.Razor.Managers.RazorPageResolver.CreateRazorPageInstance (IHttpRequest httpReq, IHttpResponse httpRes, System.Object dto, ServiceStack.Razor.Managers.RazorPage razorPage) [0x00000] in <filename unknown>:0 
  at ServiceStack.Razor.Managers.RazorPageResolver.ResolveAndExecuteRazorPage (IHttpRequest httpReq, IHttpResponse httpRes, System.Object model, ServiceStack.Razor.Managers.RazorPage razorPage) [0x00000] in <filename unknown>:0 
  at ServiceStack.Razor.Managers.RazorPageResolver.ProcessRequest (IHttpRequest httpReq, IHttpResponse httpRes, System.Object dto) [0x00000] in <filename unknown>:0 
  at ServiceStack.WebHost.Endpoints.Formats.HtmlFormat+<>c__DisplayClass1.<SerializeToStream>b__0 (IViewEngine x) [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable.Any[IViewEngine] (IEnumerable`1 source, System.Func`2 predicate) [0x00000] in <filename unknown>:0 
  at ServiceStack.WebHost.Endpoints.Formats.HtmlFormat.SerializeToStream (IRequestContext requestContext, System.Object response, IHttpResponse httpRes) [0x00000] in <filename unknown>:0 
  at ServiceStack.WebHost.Endpoints.Extensions.HttpResponseExtensions.WriteToResponse (IHttpResponse response, System.Object result, ServiceStack.ServiceHost.ResponseSerializerDelegate defaultAction, IRequestContext serializerCtx, System.Byte[] bodyPrefix, System.Byte[] bodySuffix) [0x00000] in <filename unknown>:0 

ServiceStack ソースで RazorPageHost.Compile を調べたところ、結果_codeDomProvider.CompileAssemblyFromDomにエラーが含まれている場合に HttpCompileException がスローされることがわかります。これは理にかなっています。

CodeDomProvidermod_mono Apache がホストする ServiceStack アプリケーションで動作させるための特別な構成はありますか?

編集:これは ServiceStack に固有のものではないようです。同じサーバーにデプロイされた他の ASP.NET アプリにも同じ問題があります。

4

0 に答える 0