2009-05-28 8 views
8

J'ai installé un ensemble de services Web standard sur un serveur Windows 2003, IIS 6. Lorsque j'accède à l'un des services Web via mon navigateur, j'obtiens un écran jaune .NET à l'exception de:"Le fichier n'a pas été pré-compilé et ne peut pas être demandé"

Le fichier '/SuperOfficeWebService/Contact.asmx' n'a pas été pré-compilé et ne peut pas être demandé.

Les mêmes services Web standard (installés via .msi) fonctionnent sur d'autres machines. Les fichiers .asmx ne contiennent que le texte "Ceci est un fichier marqueur généré par l'outil de précompilation, et ne devrait pas être supprimé!", Comme prévu.

Dans le sous-dossier bin \ j'ai les fichiers .compiled qui correspondent aux fichiers .asmx.

Quel pourrait être le message d'erreur? Tous les paramètres IIS ou les paramètres .NET 2.0 qui empêchent IIS de charger les fichiers compilés?

Répondre

2

Dans le cas où quelqu'un d'autre est toujours à la recherche d'une solution, j'ai eu le même problème. Mon problème était que j'utilisais 'aspnet_compiler' du mauvais dossier de cadre. Mon projet a été créé en VS'05 et .net 2.0. J'essayais de précompiler depuis "c: \ windows \ Microsoft .NET \ Framework \ v4.xxxx" quand j'avais besoin de précompiler de "c: ... \ v2.xxxx".

Espérons que cela aide quelqu'un.

0

J'ai eu le même problème et l'ai résolu en exécutant la commande suivante pour réassocier le bon compilateur avec IIS.

Allez dans le dossier de la version de .NET que vous souhaitez utiliser (par exemple: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727)

Et courir: aspnet_regiis -i

Hope this helps.

0

Si vous rencontrez ce problème lors de l'exécution d'un script MSBuild, il est probable que votre projet soit un projet 2.0 ou 3.5 et que MSBuild utilise le compilateur 4.0. Ajoutez TargetFrameworkMoniker="3.5" à vos directives AspNetCompiler.

1

J'ai eu le même message, mais pas avec un service Web. Dans mon cas, c'était une application Web ASP.NET 2.0 à la vanille, qui utilise également AJAX Control Toolkit v1.0.61025. Quand je dépisté vers le bas, j'ai trouvé mon environnement (VS ou un de mes addons) dépouillé deux éléments de mon web.config:

  • tag « assemblées » il manquait deux lignes:

    <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"/> 
    
  • Il manque également

    étaient ces lignes de la section "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> 
    

que je fais le déploiement et l'utilisation XCOPY web.config pour contrôler les différences entre le développement et le live (chaîne de connexion, etc).Après avoir publié dans VS (dans un dossier sur ma boîte de dev), je supprime web.config (puisqu'il a mes paramètres de développement) et continue d'utiliser le même web.config en direct. Parce que le web.config en direct avait ces lignes manquantes, j'avais compilé avec un web.config qui était différent de plus de quelques valeurs de clé d'application.

La restauration de ces lignes dans mon environnement de développement et leur réédition ont corrigé le problème. Whoa, ils ont juste disparu à nouveau de mon VS 2010, je ferais mieux de noter une question!

0

Dans notre cas, nous avons eu ce message après avoir recréé le site. Les fichiers sur le site ont dû être compilés en utilisant .NET 4.0.3 et IIS par défaut était 2.0.5. Nous avons dû modifier la version ASP.NET dans Site> Properties> ASP.NET.

0

Bin déployer Microsoft.WebServices3.dll 3.0.5305.0 a fonctionné pour moi sur Windows Server 2012 R2 avec .Net Framework 4.5+. Cette option allège le besoin d'installer .Net Framework 3.5 et WSE 3.0.

Questions connexes