2010-09-01 30 views
0

使用.NET 4.0,IIS 7.4的Windows Server 2008 R2asp.net VS在IIS WCF请求管道500错误

我必须根据一定的规则的要求WCF Web服务和路由之间,坐在一个asp.net应用。

的IIS错误页面设置为“详细本地请求和自定义错误......”

的asp.net路由服务使用HttWebRequest对象调用WCF服务。

当wcf服务抛出一个错误异常时,我得到一个iis html错误响应。

,但我得到了适当的SOAP响应正确的IIS 500错误,当我直接调用服务(不包括路由器)

我知道我可以通过更改IIS错误页面设置修复它,但我不希望这样做,因为它会暴露我的非wcf错误。

问题是

  1. 是那里的iis如何对待WCF请求VS asp.net请求时,它涉及到500错误

  2. 也该用在IIS 6,工作如何差异将这种行为重新回到iis 7

回答

0

您应该让ASP.NET不在图片中。创建一个WCF服务以站在两个服务之间。您可以从现有的ASP.NET路由器复制路由逻辑。 WCF服务应该使用“添加服务引用”来与这两个服务进行通信。

另外,只需在ASP.NET路由器中自己使用“添加服务引用”即可。

+0

不幸的是,我们的服务依赖于某些http头文件,它的一个巨大的改变是,asp.net pipleline与wcf完全不同?如何处理wcf 500不同于asp.net 500 – 2010-09-01 16:21:36

+0

我不知道IIS如何以不同方式处理它们,或者即使涉及IIS。可能是因为响应的主体包含SOAP而不是HTML? WCF是非常可扩展的。我相信你可以使用WCF处理标题。我不知道确切的技术,但我相信你可以做到。我知道一个WCF消息日志启用时会包含HTTP头信息,这样证明WCF不会仅仅丢弃头文件。它们可能存储在传入Message对象的Properties属性中。 – 2010-09-01 16:56:13