【问题标题】:Deploying ASP.NET MVC4 App to GoDaddy Compiler issue将 ASP.NET MVC4 应用程序部署到 GoDaddy 编译器问题
【发布时间】:2014-08-29 13:39:30
【问题描述】:

看过几篇关于将 MVC 应用程序部署到 GoDaddy 的帖子。他们似乎都没有解决我们遇到的问题。我们遵循了有关检查运行时版本、IIS 管道模式、在程序集上发布和复制本地为 true 的建议,因此所有这些都可以在 GoDaddy.Com 上运行。

我们遇到的问题是,当我们尝试访问该站点时,我们会收到组策略异常,因为 ASP.NET 运行时正在尝试调用 C# 编译器。

[Win32Exception (0x80004005): This program is blocked by group policy. For more information, contact your system administrator]

[ExternalException (0x80004005): Cannot execute a program. The command being executed was "C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe".........

我们已完成发布设置并选择预编译该站点。那并没有解决问题。查看了站点,没有部署 CS 文件。 Global.asax 文件确实引用了代码隐藏文件。由于我们对站点进行了预编译,因此我们尝试删除 global.asax 文件,但这也不能解决问题。

任何想法都会很棒。

【问题讨论】:

  • 如果你预编译你的视图,你还看到这个问题吗?似乎有几件事可能导致这种情况:1)正在编译的视图,2)服务器上的 JIT 编译。对于这两种情况,答案是确保您的应用具有 csc.exe 的权限(反之亦然?)。
  • 在发布设置中我们选择了预编译。我们确实将 web.config 更改为设置为完全信任(GoDaddy.com 文章说,对于 ASP.NET 4.0/4.5,信任应该设置为完全信任)。由于这是 GoDaddy.Com 环境,不知道我们如何授予更多权限以允许 CSC.EXE 运行)。
  • 请确保您已对您的网站授予完全许可,或者您可以要求 Godaddy 为您授予许可。另请查看此文档windows2008hosting.asphostportal.com/post/…,希望它也能有所帮助!
  • 你找到解决办法了吗?

标签: asp.net asp.net-mvc-3 asp.net-mvc-4 web-hosting


【解决方案1】:

我在 GoDaddy 主机上遇到了同样的问题。

要修复它,请按照以下步骤操作。

第 1 步:在 Web 部署设置中选择“发布期间预编译”。

第 2 步:<trust level="Full" /> 在 Web.config 中的 <system.web>

【讨论】:

    【解决方案2】:

    我按照下面链接中的说明删除了 Roslyn nuget 包,但它是一种解决方法。

    https://social.msdn.microsoft.com/Forums/en-US/442b100a-2b88-4ac4-b655-0c1345791f15/roslyn-cscexe-web-api-2-on-hosting-server?forum=msbuild

    此问题发生在 Visual Studio 2015 模板中的干净 mvc 5 Web 项目中。 我联系了 godaddy 支持,让我们看看他们做了什么。

    【讨论】:

    • 他们对我所做的是告诉我“抱歉,您的信任级别已经设置为完全,所以您猜您需要寻找另一家托管公司。” WTF 我在这里失踪了吗?
    • 他们说是通过电话支持?
    • 是的。没有那么多话,但那是那里的信息。他们告诉我,如果我需要该帐户不支持的任何权限,那么我需要找到具有不同权限的托管帐户。
    【解决方案3】:

    您必须从网络配置中删除编译信息,它才会起作用。

    除了预编译(选中发布设置中的复选框),将以下内容添加到您的 Web.Release.config:

    <system.web>
      <trust level="Full" xdt:Transform="Insert" />
    </system.web>
    <system.codedom xdt:Transform="Remove" /> <!-- No compiling on server, GoDaddy blocks it. -->
    

    更新(2017 年 1 月 27 日): 看来(至少在我看来)不再需要删除 system.codedom。

    【讨论】:

    • 这是一种比涉及手动更改配置的较高评价答案更好的方法。然而,这两种方法都可以解决问题。
    • 看准了!一秒搞定。
    【解决方案4】:

    几个月来,我一直在为同样的问题苦苦挣扎。最后解决了。在 godaddy 的 plesk 中,我更改了 ASP.Net 设置。首先将 CAS-trustlevel 更改为 Full。然后我在我的项目的Web.config 中更改了以下内容:

    • 向 system.web 添加完全信任级别
    • 删除 system.codecom 中的编译器
     <system.web>
        compilation debug="true" targetFramework="4.5.2"/>
        <httpRuntime targetFramework="4.5.2"/>
        <trust level="Full"/>             <!-- Just add this to the webconfig -->
     </system.web>
    
     <system.codedom>
                  <!-- All is removed between the 2 tags-->
     </system.codedom>
    

    这解决了我的问题。

    【讨论】:

    • ^^ 这就是答案。设置完全信任,并删除 &lt;system.codedom&gt; 节点中的所有内容。你的回答被低估了。
    • 谢谢,我已经搜索了大约 2 天的解决方案
    • 谢谢!这是我最近遇到的一个问题,我以前没有见过。 trust level="Full" 部分我以前必须做,但我从没想过要删除 system.codedom 标签之间的所有内容。
    • 难以置信。在花费数小时试图修改我的连接字符串后,注释掉 &lt;system.codedom&gt; 中的那些语言标签为我解决了这个问题 What a PITA!!!
    • 我在使用 ASP.Net Web API 时遇到了同样的问题。谢谢十亿!这行得通。
    【解决方案5】:

    发布后 csc.exe 编译器错误

    在 web.config 下方评论

    <!--<compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.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.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
    </compilers>-->
    

    【讨论】:

      【解决方案6】:

      非常好。我也有同样的问题。但是,我的托管供应商是 arvixe。

      1. 在 Web.config 的 >system.web> 部分下添加 >trust level="Full" />"
      2. 注释掉 Web.config 中 >codedom> 的 >compilers> 部分

      问题已解决!!!

      【讨论】:

      • Allah tera bhalla kre pai.
      • 非常感谢。浪费了 2 天后,这对我有用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-01
      • 2020-02-13
      • 2011-12-13
      • 1970-01-01
      相关资源
      最近更新 更多