C#隐藏WCF隐藏终结点未找到响应。

4
我希望您能尽可能地隐藏我的WCF。如果有人输入我的WCF的URL,他们将显示响应“找不到端点”。如果他们尝试获取请求,因为我的服务仅接受POST请求,所以会显示“方法不允许”。
我已经在我的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和POST参数完全匹配时才显示无响应。我不确定是否需要修改我的“自定义错误部分”。我理解自定义错误仅适用于抛出异常的情况。端点未找到和方法不允许不是异常。
如有帮助或建议,将不胜感激。
2个回答

1
我建议在使用IDispatchMessageInspector或IDispatchOperationSelector时,结合实现IServiceBehavior或IEnpointBehavior。这样,当收到请求时,您可以编写代码来生成自定义响应。
我没有完全符合您需求的示例,但您可以查看下面的文章,在传出消息上修改XML命名空间标记。我的想法是,如果请求不符合您的条件,您可以简单地返回null或404。还包括一些MSDN文章相关主题。 如何在使用传统SOAP服务时创建自定义XML命名空间属性?

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


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接