2010-10-15 6 views
0

J'ai créé un tout nouveau service WCF. J'ai créé ce service en disant simplement Ajouter un nouvel élément ... -> Service WCF dans Visual Studio. Je puis un peu le contrat édité pour ressembler à ce qui suit:Exposer un service WCF REST-entièrement

[ServiceContract] 
public interface IMyService 
{ 
    [OperationContract] 
    [WebGet(UriTemplate = "/Authenticate/{username}/{password}", ResponseFormat = WebMessageFormat.Json)] 
    bool Authenticate(string username, string password); 
} 

Mes opérations se présente comme suit:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)] 
[ServiceBehavior(IncludeExceptionDetailInFaults = false)] 
public class MyService : IMyService 
{ 
    public bool Authenticate(string username, string password) 
    { 
     try 
     { 
      return false; 
     } 
     catch (Exception ex) 
     { 
      throw new ApplicationException("Unknown exception"); 
     } 
    } 
} 

Lorsque je visite: http://localhost:80/MyService.svc/Authenticate/someUserName/somePassword dans ma fenêtre de navigateur, un écran vide apparaît. Je m'attendais à ce que "false" apparaisse dans la syntaxe JSON. Qu'est-ce que je fais mal?

Merci!

Répondre

0

Utilisez un outil tel que Fiddler pour voir les messages HTTP réels. Aide au débogage. Deuxièmement, vous demandez que l'URL soit erronée. Essayez ceci:

http://localhost:80/MyService.svc/Authenticate/someUserName/somePassword

Vous avez un fichier SVC, correct? Vous en aurez besoin si vous hébergez ceci dans IIS. Si vous l'hébergez dans un objet WebServiceHost, vous n'en avez pas besoin.

using(WebServiceHost host = new WebServiceHost(typeof(MyService))) 
    { 
     host.Open(); 
     Console.WriteLine("Service is running"); 
     Console.WriteLine("Press enter to quit..."); 
     Console.ReadLine(); 
     host.Close(); 
    } 
+0

Vous avez raison. J'ai un fichier SVC. J'ai depuis édité le post. Cependant, j'ai toujours un écran vide. – Villager

+0

Ecran vide? Vous utilisez Firefox pour tester cela? Vous obtenez probablement une erreur 400 ou 404. IE (oui, IE) vous donnera l'erreur HTTP. Essayez aussi Fiddler. Très bon outil. http://www.fiddler2.com/fiddler2/ – MonkeyWrench

+0

Comment hébergez-vous le service? Dans IIS? Chose du serveur Visual Studio Dev? Auto-hébergement avec un WebServiceHost? Si vous trouvez que créer une application de console et l'utiliser pour auto-héberger l'application Web facilite le débogage. – MonkeyWrench

Questions connexes