2009-05-28 18 views
8

Ich habe eine Reihe von Standard-Webdiensten auf einem Windows 2003, IIS 6-Server installiert. Wenn ich über meinen Browser auf einen der Webservices zugreife, erhalte ich einen gelben .NET-Bildschirm mit der folgenden Ausnahme:"Die Datei wurde nicht vorkompiliert und kann nicht angefordert werden"

Die Datei '/SuperOfficeWebService/Contact.asmx' wurde nicht vorkompiliert und kann nicht angefordert werden.

Die gleichen Standard-Webdienste (installiert über eine .msi) funktionieren auf anderen Computern.

Die ASMX-Dateien enthalten wie erwartet nur den Text "Dies ist eine Markierungsdatei, die vom Vorkompilierungstool erstellt wurde und nicht gelöscht werden sollte!".

Im bin \ subfolder habe ich die .compiled Dateien, die den .asmx Dateien entsprechen.

Was könnte die Fehlermeldung verursachen? Alle IIS-Einstellungen oder .NET 2.0-Einstellungen, die verhindern, dass IIS die kompilierten Dateien lädt?

Antwort

2

Falls jemand noch nach einer Lösung gesucht, ich hatte das gleiche Problem. Mein Problem war, dass ich 'aspnet_compiler' aus dem falschen Framework-Ordner verwendete. Mein Projekt wurde in VS'05 und .net 2.0 erstellt. Ich habe versucht, von "c: \ Windows \ Microsoft .NET \ Framework \ v4.xxxx" vorkompilieren, wenn ich von "c: ... \ v2.xxxx" vorkompilieren musste.

Hoffnung, dass jemand hilft.

0

Ich hatte das gleiche Problem und reparierte es, indem ich den folgenden Befehl ausführte, um den richtigen Compiler mit IIS neu zuzuordnen.

Gehen Sie zu dem Ordner, der Version von .NET Sie verwenden möchten (zB: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727)

Und laufen: aspnet_regiis -i

Hoffnung, das hilft.

0

Wenn Sie dieses Problem beim Ausführen eines MSBuild-Skripts erhalten, besteht die Möglichkeit, dass Ihr Projekt ein 2.0- oder 3.5-Projekt ist und MSBuild den 4.0-Compiler verwendet. Fügen Sie TargetFrameworkMoniker="3.5" zu Ihren AspNetCompiler Richtlinien hinzu.

1

Ich hatte die gleiche Nachricht, aber nicht mit einem Web-Service. In meinem Fall war es eine Vanilla ASP.NET 2.0 Web App, die zufällig AJAX Control Toolkit v1.0.61025 verwendet. Als ich es aufgespürt, fand ich meine Umgebung (VS oder einer meiner Addons) gestrippt zwei Elemente aus meinem web.config:

  • „Baugruppen“ Tag zwei Zeilen fehlt:

    <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"/> 
    
  • auch fehlten diese Zeilen aus "system.web" Abschnitt:

    <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> 
    

ich tue XCOPY Bereitstellung und Nutzung web.config zur Kontrolle der Unterschiede zwischen Entwicklung und Live (Verbindungszeichenfolge, etc).Nach dem Veröffentlichen in VS (in einen Ordner in meinem Entwicklerfeld) lösche ich web.config (da es meine Dev-Einstellungen hat) und benutze einfach die gleiche web.config in Live. Da die live web.config diese fehlenden Zeilen hatte, kompilierte ich mit einer web.config, die sich um mehr als nur ein paar App-Schlüsselwerte unterschied.

Die Wiederherstellung dieser Zeilen in meiner Entwicklungsumgebung und die erneute Veröffentlichung behebt das Problem. Whoa, sie sind gerade wieder von meinem VS 2010 verschwunden, ich melde lieber eine Frage!

0

In unserem Fall hatten wir diese Nachricht nach dem Erstellen der Website. Die Dateien auf der Website mussten mit .NET 4.0.3 kompiliert werden, und der IIS-Standardwert war 2.0.5. Wir mussten die ASP.NET-Version in Site> Eigenschaften> ASP.NET ändern.

0

Bin Bereitstellung von Microsoft.WebServices3.dll 3.0.5305.0 funktionierte für mich auf Windows Server 2012 R2 mit .Net Framework 4.5 +. Diese Option erleichtert die Installation von .Net Framework 3.5 und WSE 3.0.

Verwandte Themen