2014-05-23 1 views
0

Ma situation est que j'ai un service WCF et un contrat générique qui fonctionne pour toutes les collections:WCF Trailing Slashes

[ServiceContract(Name = "GetAllService", ConfigurationName = "GetAllContract")] 
public interface IGetAllCollectionServiceContract<T> where T : IEnumerable 
{ 
    [Audit] 
    [OperationContract] 
    [WebGet(UriTemplate = "/")] 
    T GetAll(); 
} 

Cela fonctionne bien lorsque vous utilisez un arrière/à la fin, mais si vous le faites-vous pas obtenir le message "Aucune donnée reçue". J'ai essayé de supprimer le "/" de l'UriTemplate mais cela donne exactement le même résultat. Ce qui est étrange à propos de cela, c'est que j'ai déployé ce code sur nos serveurs live il y a des mois et sur le serveur live, il semble y avoir une barre oblique à la fin de l'URL lorsque vous y accédez. Sur le serveur de transfert, il ne le fait pas, mais il n'y a pas de différence dans le code, les paramètres IIS de base ou la configuration web que je peux voir qui affecterait cela. J'utilise IIS 6 et visual studio 2012 pouvez-vous penser à tout ce qui pourrait causer ce problème? J'ai lu les autres articles à ce sujet et ils n'ont pas aidé.

Merci d'avance pour toute aide.

Répondre

0

Weird que cela puisse paraître le problème dans la configuration Web dans un code de diagnostic une fois l'a été retiré ci-dessous cela a fonctionné ... très étrange

<system.diagnostics> 
     <sources> 
      <source name="System.ServiceModel" 
        switchValue="Information, ActivityTracing" 
        propagateActivity="true"> 
      <listeners> 
       <add name="traceListener" 
        type="System.Diagnostics.XmlWriterTraceListener" 
        initializeData= "c:\log\Traces.svclog" /> 
      </listeners> 
     </source> 
     </sources> 
    </system.diagnostics>