c# – Web.config导致“被组策略阻止”错误

不同的web.config设置的miriad对我来说一直是一个谜.我很高兴微软默认已经清理了一些放在那里的内容,但仍然引起问题.

具体来说,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,PublicKeyToken=31bf3856ad364e35"
      warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/>
  </compilers>
</system.codedom>

当我将此应用程序上传到我的GoDaddy共享Plesk主机帐户时,我收到以下错误.

This program is blocked by group policy. For more information,contact your system administrator.

GoDaddy的支持是完全不愿意的,无法提供任何帮助.但是,我发现如果我注释掉上面的部分,错误就会消失.

有人知道这个块的目的还是为什么微软把它放在那里?我的应用似乎运行没有它. (请注意,我的应用程序使用C#而不是VB.)

解决方法

由于ASP.NET 2可以将您的站点上传到您的主机而不进行编译.然后,使用web.config中所见的编译器设置,将初始化请求编译该站点.如果您预编译您的网站,但在App_code文件夹中仍然有代码,那么这些设置将用于编译该代码.

我认为go-daddy禁止在他们的服务器上编译,所以没有恶意代码可以以某种方式插入和编译/执行.

只要你不使用App_code文件夹,并且你预先编译你的网站,你可以删除你提到的web.config部分.

有关App_code文件夹检查的更多信息:

> https://msdn.microsoft.com/en-us/library/ex526337.aspx
> https://msdn.microsoft.com/en-us/library/t990ks23.aspx

有关ASP.NET动态编译检查的更多信息:

> https://msdn.microsoft.com/en-us/library/ms366723(v=vs.100).aspx

相关文章

在项目中使用SharpZipLib压缩文件夹的时候,遇到如果目录较深,则压缩包中的文件夹同样比较深的问题。比...
项目需要,几十万张照片需要计算出每个照片的特征值(调用C++编写的DLL)。 业务流程:选择照片...
var array = new byte[4]; var i = Encoding.UTF8.GetBytes(100.ToString(&quot;x2&quot;));//...
其实很简单,因为Combox的Item是一个K/V的object,那么就可以把它的items转换成IEnumerable&lt;Dic...
把.net4.6安装包打包进安装程序。 关键脚本如下: 头部引用字符串对比库 !include &quot;WordFunc....
项目需求(Winform)可以批量打印某个模板,经过百度和摸索,使用iTextSharp+ZXing.NetʿreeSp...