2010-05-03 6 views
0

J'ai plusieurs points d'extrémité RESTful comme tel:WCF 3.5 - Retirer SVC Extension - Cas particulier

System.Security.Role.svc 
System.Security.User.svc 
etc. 

Ceci est censé être un espace de noms pour que notre URL RESTful de ressemblerait à ceci:

/rest/{class namespace}/{actions} 

I J'ai essayé quelques exemples pour obtenir l'extension SVC lorsque mon point de terminaison a plusieurs périodes, mais rien ne semble fonctionner.

J'ai testé avec le package WCF REST Contrib (http://wcfrestcontrib.codeplex.com/), cet exemple (http://www.west-wind.com/weblog/posts/570695.aspx) et un autre poste StackOverflow (How to remove the ".svc" extension in RESTful WCF service?).

Cela fonctionne très bien quand mon point final est quelque chose comme ceci:

Echo.svc 

Il supprimera correctement l'extension SVC.

Des idées sur la gestion des points de terminaison avec plusieurs points dans le nom du point de terminaison?

EDIT: Après quelques tests supplémentaires, je trouve que ce échoue parce que chaque fois que vous faites:

string path = HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath; 

Si le critère d'évaluation contient plusieurs périodes, il se déshabille tout après le point final causant tous la norme IHttpModule à échouer.

Exemple:

Si j'appelle http://localhost/services/Echo/test, mon chemin de fichier application par rapport a une valeur retournée de:

~/echo/test 

Cependant, si je fais un appel comme http://localhost/services/System.Security.User/test, alors mon chemin de fichier application relatif a une valeur retournée de:

~/system.security.user 

Je manque le '/ test' à la fin dans cette situation.

Répondre

Questions connexes