C# 自托管服务(无IIS)时的WCF自定义错误页

C# 自托管服务(无IIS)时的WCF自定义错误页,c#,wcf,error-handling,self-hosting,webinvoke,C#,Wcf,Error Handling,Self Hosting,Webinvoke,我有一个自托管WCF服务,它只公开一个WebCalled操作,地址和参数如下: www.myserver.com/myservice/SayHello?LuckeyNumber=3 (where LuckeyNumber : int) 现在,当有人试图访问这个地址,但使用LuckeyNumber=EvilInput时,我会得到一个WCF错误页面,我想用一个页面替换它(类似于Twitter Fail Whale) 如何替换此页面 我可以替换404、405等的页面吗 谢谢 对于自托管WCF,如果

我有一个自托管WCF服务,它只公开一个WebCalled操作,地址和参数如下:

www.myserver.com/myservice/SayHello?LuckeyNumber=3  (where LuckeyNumber : int)
现在,当有人试图访问这个地址,但使用
LuckeyNumber=EvilInput
时,我会得到一个WCF错误页面,我想用一个页面替换它(类似于Twitter Fail Whale)

  • 如何替换此页面
  • 我可以替换404、405等的页面吗

  • 谢谢

    对于自托管WCF,如果您托管REST服务,您可以添加WebHttpBehavior以获得帮助页面,但您肯定可以在服务响应中发送错误异常详细信息(而不是整个html页面)

    使用这些服务的应用程序应该注意在一个奇特的错误页面中显示故障详细信息


    您应该始终让消费者(而不是服务层)决定是否屏蔽此数据,并根据需要显示/记录它。

    可能与此问题有关:为什么服务需要返回人类可读的错误页面?你不需要只返回一个错误或500个错误吗?@RemotecUk:1。大部分情况下,我们没有。我们有一个返回HTML的端点,我们希望它有一个自定义错误页面。2.我们的大多数服务都是JSON,错误被序列化为SOAP错误。3.开箱即用,WCF返回一个我们想要控制的HTML人类可读响应。如果您是自托管的,如何获得WCF错误页面?当然你只是在响应中得到了一个异常?@RemotecUk:可以看到,异常显示在一个漂亮的(半)人类可读的页面上。将决策权留给消费者不是一个选项,因为这是在渗透测试期间检测到的,服务器有两件事情我们无法揭露:(1)服务器在故障异常中包含堆栈跟踪,允许攻击者对服务器的某些结构进行反向工程,(2)返回字符串
    input
    。如果字符串是
    LaunchZeMissiles()
    ,那么它就会被执行(一个la-XSS)。