2016-12-29 8 views
0

で%を使用する方法エラーメッセージ:エンドポイントが見つかりません! 例えば:私は%記号なしで使用する場合はWCF RESTサービス - セルフホストのWindowsサービス - 私は私が得たURL内の%23を使用する場合、文字列</p> <p>などのパラメータを取得するメソッドを持っているREST WCFサービスを持っているURL

-- Id #9999 
http://localhost:8000/MyService/GetData/Id/%239999 (%23 means # symbol encoded) 

それは

http://localhost:8000/MyService/GetData/Id/10 

[ServiceContract] 
public interface IService1 
{ 
    [OperationContract] 
    [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, UriTemplate = "GetData/id/{id}")] 
    string GetData(string value); 

} 

私はWindowsサービス上でサービスをホスト正常に動作します:

 ServiceHost host = new ServiceHost(typeof(Service1), "http://localhost:8000"); 

     WebHttpBinding binding = new WebHttpBinding(); 

     ServiceEndpoint endpoint = host.AddServiceEndpoint(typeof(IService1), binding, "MyService"); 
     WebHttpBehavior httpBehavior = new WebHttpBehavior();   
     endpoint.Behaviors.Add(httpBehavior); 

     host.Open(); 

私はこの記事を見つけた: http://www.hanselman.com/blog/ExperimentsInWackinessAllowingPercentsAnglebracketsAndOtherNaughtyThingsInTheASPNETIISRequestURL.aspxをIIS上でWCFをホストしていないので動作しません。代わりにWindowsサービスでホストしています

答えて

0

そのないURLでいくつかの特殊文字を使用するのに最適なpraticeを。それらを使用しないようにしてください。

MSDN - UriTemplate

+0

おかげでパウロを見てみましょうが、問題は、我々は、IDで特別な文字を持っています。彼らはここでこの方法を使用し、私は従わなければならない。 – Rick

関連する問題