2014-07-08 13 views
32

Sono stati visualizzati diversi post sulla distribuzione di app MVC su GoDaddy. Nessuno di loro sembra affrontare il problema che stiamo affrontando. Abbiamo seguito il consiglio di controllare le versioni di runtime, le modalità di pipeline IIS, la pubblicazione e la copia locale su true negli assembly, quindi tutto funziona su GoDaddy.Com.Distribuzione dell'applicazione ASP.NET MVC4 su GoDaddy Compiler

Il problema che stiamo riscontrando è che quando proviamo a visitare il sito otteniamo un'eccezione di Criteri di gruppo perché il runtime di ASP.NET sta tentando di richiamare il compilatore 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".........

Abbiamo attraversato le impostazioni di pubblicazione ed eletto di precompilare il sito. Questo non ha risolto il problema. Hanno guardato il sito e non ci sono file CS distribuiti. Il file Global.asax fa riferimento a un file codebehind. Poiché abbiamo precompilato il sito, abbiamo provato a eliminare il file global.asax e questo non risolve il problema.

Ogni pensiero sarebbe fantastico.

+0

Se si precompilano le visualizzazioni, si vede ancora questo problema? Sembra che ci siano alcune cose che potrebbero causare questo: 1) Visualizzazioni in fase di compilazione, 2) Compilazione JIT sul server. entrambi, la risposta sarebbe garantire che l'app disponga delle autorizzazioni per csc.exe (o viceversa?). –

+0

In the p impostazioni ublish abbiamo scelto di precompilare. Abbiamo modificato web.config per impostare il trust completo (l'articolo di GoDaddy.com ha affermato che con fiducia di ASP.NET 4.0/4.5 deve essere impostato su pieno). Poiché questo è l'ambiente GoDaddy.Com non so come potremmo concedere ulteriori permessi per consentire a CSC.EXE di funzionare). –

+0

Assicurati di aver dato piena autorizzazione al tuo sito o potresti chiedere a Godaddy di dare il permesso per te. Per favore controlla anche questa documentazione http://windows2008hosting.asphostportal.com/post/Cheap-ASPNET-MVC-3-Hosting-ASPHostPortal-How-to-Deploy-an-ASPNET-MVC-3-App-to-Web-Hosting -with-5cbin-Deployment.aspx e spero che sia d'aiuto! –

risposta

8

Ho avuto lo stesso problema su hosting GoDaddy.

Per risolvere il problema, attenersi alla seguente procedura.

Passaggio 1: selezionare "Precompila durante la pubblicazione" nelle impostazioni di Web Deploy.

Fase 2: <trust level="Full" /> in <system.web> nel web.config

+0

ottima risposta. +1 –

5

ho rimosso il pacchetto NuGet Roslyn, come spiegato nel link qui sotto, ma è un workarround.

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

Questo problema si verifica con un panno pulito MVC 5 progetto web da Visual Studio 2015 modello. Ho contattato il supporto di Godaddy, vediamo cosa fanno.

+0

Quello che hanno fatto con me è dirmi "Scusa, il livello di attendibilità è già impostato su Completo, quindi suppongo che dovrai trovare un'altra società di hosting". WTF mi manchi qui? –

+0

Hanno detto che per supporto telefonico? –

+0

Sì. Non in tante parole, ma c'era un messaggio. E mi hanno detto se avevo bisogno di privilegi non supportati su quell'account, quindi dovrò trovare un account di hosting con diversi privilegi. –

16

È necessario rimuovere le informazioni di compilazione dalla configurazione Web e funzionerà.

Oltre a precompilazione (selezionare la casella nelle impostazioni di pubblicazione), aggiungere il seguente al vostro 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. --> 

UPDATE (2017/01/27): Sembra (almeno sul mio account) che la rimozione di system.codedom non è più necessaria.

+0

ohh, hai risolto il mio problema.Grazie :) –

+0

hai reso la mia giornata. Grazie. – amitavak

+0

Questo è un approccio migliore rispetto alla risposta più alta che comporta la modifica manuale della configurazione. Entrambi gli approcci risolvono comunque il problema. – Michael

92

Ho lottato con lo stesso problema per mesi. E alla fine l'ha risolto. Nel plesk su Godaddy ho cambiato le impostazioni di ASP.Net. Prima cambiato CAS-trustlevel in Full. Poi ho cambiato nel Web.config del mio progetto seguente:

  • Add livello di attendibilità completo del system.web
  • Rimuovere i compilatori nel sistema.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> 

e che ha risolto il mio problema.

+4

^^ questa è la risposta. Imposta il trust completo e rimuovi tutto nel nodo ''. La tua risposta è sottovalutata. –

+3

grazie, ho cercato la soluzione circa 2 giorni – ozgunb

+0

Grazie! Questo è un problema che ho incontrato di recente e che non ho mai visto prima. La sezione 'trust level =" Full "che ho dovuto fare prima, ma non avrei mai pensato di cancellare tutto tra i tag' system.codedom'. – johnnyRose

1

errore del compilatore csc.exe dopo pubblicare

commento qui sotto sul 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>--> 
2

eccellente. Ho anche lo stesso problema. Tuttavia, il mio fornitore di hosting è arvixe.

  1. Aggiungi> livello di fiducia =>" sotto> system.web sezione "Full"/> in web.config
  2. commento fuori> compilatori> del> CodeDOM> nel web.config

Il problema risolto !!!