2016-09-26 7 views
4

可能な限りWCFを隠そうとしています。 WCFにURLを入力すると、「エンドポイントが見つかりません」という応答が表示されます。彼らがgetリクエストをしようとすると、私のサービスは投稿リクエストしか受け付けないので、メソッドは許可されていない方法で表示されます。C#hide WCF hideエンドポイントが見つかりませんでした。

私はすでに私のweb.configファイルに

<behaviors> 
     <endpointBehaviors> 
     <behavior name="webBehavior"> 
      <webHttp helpEnabled="false" /> 
     </behavior> 
     </endpointBehaviors> 
     <serviceBehaviors> 
     <behavior name="Default"> 
      <serviceDebug includeExceptionDetailInFaults="False" /> 
      <serviceMetadata httpGetEnabled="false" httpsGetEnabled="false" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 

を以下が含まれていた私は、彼らが正確なURLと正確なポストのパラメータを持っていない限り、何の応答を表示しないようにしたいと思います。 「カスタムエラーセクション」を変更する必要があるかどうかはわかりません。私の理解はカスタムエラーです。例外がスローされたときだけです。エンドポイントが見つからず、許可されないメソッドは例外ではありません。

何か助力や提案をいただければ幸いです。

答えて

1

IDispatchMessageInspectorまたはIDispatchOperationSelectorと組み合わせてIServiceBehaviorまたはIEnpointBehaviorを実装することをお勧めします。このようにしてリクエストが受信されると、カスタムレスポンスを作成するためのコードを書くことができます。

あなたのニーズに合った例はありませんが、送信メッセージのXML名前空間タグを変更するには、以下の記事をご覧ください。私の考えは、要求があなたの基準を満たしていない場合、nullまたは404を単に返すことができるということです。トピックにいくつかのMSDN記事も含まれています。

How can I create custom XML namespace attributes when consuming a legacy SOAP service?

https://msdn.microsoft.com/en-us/library/system.servicemodel.description.iservicebehavior(v=vs.110).aspx

https://msdn.microsoft.com/en-us/library/system.servicemodel.description.iendpointbehavior(v=vs.110).aspx

https://msdn.microsoft.com/en-us/library/system.servicemodel.dispatcher.idispatchmessageinspector(v=vs.100).aspx

https://msdn.microsoft.com/en-us/library/system.servicemodel.dispatcher.idispatchoperationselector(v=vs.100).aspx

関連する問題