web-dev-qa-db-ja.com

「グループポリシーによってブロックされました」エラーを引き起こすWeb.config

さまざまなweb.config設定は、常に私にとってちょっとした謎でした。 Microsoftがデフォルトでそこに置かれたコンテンツの一部をクリーンアップしてくれてうれしいが、それでも問題を引き起こしている。

具体的には、Visual Studio 2015は、標準ASP.NET MVCアプリケーションの生成されたweb.configに次のセクションを配置しています。

<system.codedom>
  <compilers>
    <compiler language="c#;cs;csharp" extension=".cs"
      type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
      warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>
   <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
      type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
      warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/>
  </compilers>
</system.codedom>

このアプリケーションをGoDaddy共有Pleskホスティングアカウントにアップロードすると、次のエラーが表示されます。

このプログラムはグループポリシーによってブロックされています。詳細については、システム管理者にお問い合わせください。

GoDaddyのサポートは完全に不本意であり、支援を提供することはできません。しかし、上記のセクションをコメントアウトすると、エラーは消えることがわかりました。

このブロックの目的を知っている人や、マイクロソフトがそこに置いている理由を知っている人はいますか?私のアプリはそれなしでも大丈夫なようです。 (私のアプリはVBではなくC#を使用していることに注意してください。)

22
Jonathan Wood

ASP.NET 2では、サイトをコンパイルせずにホスティングにアップロードすることができます。その後、最初のリクエストで、web.configに見られるコンパイラ設定を使用してサイトがコンパイルされます。サイトをプリコンパイルしても、App_codeフォルダーにコードがある場合、それらの設定はそのコードのコンパイルに使用されます。

Go-daddyはサーバーでのコンパイルを無効にしたため、悪意のあるコードを挿入してコンパイル/実行することはできません。

App_codeフォルダーを使用せずにWebサイトをプリコンパイルする限り、言及したweb.configセクションを削除できます。

App_codeフォルダーの詳細については、次を確認してください。

ASP.NETチェックの動的コンパイルの詳細については、次を参照してください。

12
SynerCoder
<system.codedom>
   <!--remove all the contents here-->
</system.codedom>

system.codedomタグ内のすべてのコンテンツを削除して追加します

<trust level="Full"/>

system.webタグ内

<system.web>
   <trust level="Full"/>
</system.web>
42
Prince Prasad

私はこれが少し遅れていることを理解していますが、要素内のすべてのコンテンツを削除することでこの問題を解決しました。これは、プリコンパイル済みとそれ以外の両方で機能するようです。

1
Jonathan

サーバーでAsp.netの設定を変更します。信頼レベルのオプションがあります。 「フル」に設定します。