2009-05-28 5 views
8

Ho installato un set di servizi Web standard su un server Windows 2003, IIS 6. Quando accedo a qualcuno dei servizi Web tramite il mio browser ottengo una schermata gialla .NET con l'eccezione:"Il file non è stato precompilato e non può essere richiesto"

Il file '/SuperOfficeWebService/Contact.asmx' non è stato precompilato e non può essere richiesto.

Gli stessi servizi Web standard (installati tramite un .msi) funzionano su altre macchine.

I file .asmx contengono solo il testo "Questo è un file marker generato dallo strumento di precompilazione e non dovrebbe essere eliminato!", Come previsto.

Nella sottocartella bin \ sono presenti i file .compiled che corrispondono ai file .asmx.

Che cosa potrebbe causare il messaggio di errore? Eventuali impostazioni IIS o impostazioni di .NET 2.0 che impediscono a IIS di caricare i file compilati?

risposta

2

Nel caso in cui nessun altro è ancora alla ricerca di una soluzione, ho avuto lo stesso problema. Il mio problema era che stavo usando "aspnet_compiler" dalla cartella framework sbagliata. Il mio progetto è stato creato in VS'05 e .net 2.0. Stavo tentando di precompilare da "c: \ windows \ Microsoft .NET \ Framework \ v4.xxxx" quando avevo bisogno di precompilare da "c: ... \ v2.xxxx".

La speranza che aiuta qualcuno.

0

Ho avuto lo stesso problema e l'ho risolto eseguendo il seguente comando per riassociare il compilatore giusto con IIS.

Vai alla cartella della versione di .NET che si desidera utilizzare (ad esempio: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727)

ed eseguire: aspnet_regiis -i

Spero che questo aiuti.

0

Se si verifica questo problema durante l'esecuzione di uno script MSBuild, è probabile che il progetto sia un progetto 2.0 o 3.5 e MSBuild utilizzi il compilatore 4.0. Aggiungi TargetFrameworkMoniker="3.5" alle tue direttive AspNetCompiler.

1

Ho avuto lo stesso messaggio, ma non w/un servizio web. Nel mio caso, si trattava di un'applicazione web ASP.NET 2.0 vanilla, che si verificava anche utilizzando AJAX Control Toolkit v1.0.61025. Quando ho rintracciato il basso, ho trovato il mio ambiente (VS o uno dei miei addons) messo a nudo due elementi dal mio web.config:

  • "assemblee" tag mancava due linee:

    <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    <add assembly="System.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    
  • anche mancanti sono stati queste righe da sezione "system.web":

    <httpHandlers> 
        <remove verb="*" path="*.asmx"/> 
        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
        <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
        <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/> 
    </httpHandlers> 
    <httpModules> 
        <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
    </httpModules> 
    

sto facendo deployment XCOPY e l'uso web.config per controllare le differenze tra sviluppo e live (stringa di connessione, ecc.).Dopo aver pubblicato in VS (in una cartella sulla mia scatola di sviluppo), cancello web.config (dato che ha le mie impostazioni di sviluppo) e continuo a usare lo stesso web.config in live. Poiché il live web.config aveva queste righe mancanti, stavo compilando un web.config che era diverso da più di pochi valori chiave dell'app.

Il ripristino di queste righe nel mio ambiente di sviluppo e la ripubblicazione hanno risolto il problema. Whoa, sono appena scomparsi dal mio VS 2010, è meglio che registri una domanda!

0

Nel nostro caso, abbiamo ricevuto questo messaggio dopo aver ricreato il sito. I file sul sito dovevano essere compilati usando .NET 4.0.3 e IIS era 2.0.5. Abbiamo dovuto modificare la versione di ASP.NET in Sito> Proprietà> ASP.NET.

0

Il deploy di Microsoft.WebServices3.dll 3.0.5305.0 ha funzionato per me su Windows Server 2012 R2 con .Net Framework 4.5+. Questa opzione allevia la necessità di installare .Net Framework 3.5 e WSE 3.0.