百种不同的设置对我来说一直是个谜.我很高兴微软已经清理了一些默认放在那里的内容,但它仍在造成问题.

具体地说,Visual Studio2015将以下部分放在标准ASP.NETMVC应用程序的生成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>

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

此程序被组策略阻止.有关详细信息,请与您的系统管理员联系.

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

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

推荐答案

自ASP.NET2以来,无需编译即可将您的站点上传到您的主机上.然后,将使用web.config中看到的编译器设置在初始请求时编译站点.如果您预编译了站点,但在App_code文件夹中仍有代码,则这些设置将用于编译该代码.

我认为Go-addy禁用了他们服务器上的编译,这样就不会有恶意代码以某种方式被插入和编译/执行.

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

有关App_code文件夹判断的更多信息:

有关动态编译ASP.NET判断的详细信息,请执行以下操作:

Asp.net相关问答推荐

域名 + 子域名在IIS部署

如何在 MVC 中为国家和州/省创建 Select 列表

log4net 记录所有未处理的应用程序错误

SignalR 不在服务器上使用 Session

ASP.NET 如何将控件呈现为 HTML?

多行文本框多个换行符

HTTP 错误 503.该服务在简单的 ASP.NET 4.0 网站下不可用

以编程方式添加跨度标签,而不是标签控件?

页面在谷歌浏览器中加载两次

将通用列表绑定到转发器 - ASP.NET

将查询参数绑定到 ASP.NET Core 中的模型

不能在 DropDownList 中 Select 多个项目

如何从 NuGet 安装 EntityFramework 5.0(和其他旧版本)?

如何避免 ASP.NET MVC 中的 HttpRequestValidationException 呈现导致异常的相同视图

HtmlAgilityPack Select 的子 node 不符合预期

Request.Cookies 和 Response.Cookies 之间的区别

如何直接在 .aspx 页面中访问 web.config 设置?

elmah:没有 HttpContext 的异常?

在 ASP.NET MVC 中获取服务器机器名称?

中继器中的中继器