by Israr Khan
22. desember 2010 10:28
Feilsøking av WCF-tjenester kan være både en fryd - og pest og plage! Jeg skal ikke gå inn på hvordan du går frem for å få med exceptions details med "vanlig" WCF (hint: Se lenker) - men når du ikke har de nødvendige elementene (I dette tilfellet "Services" i config-filen) - kan en lure på hvordan dette gjøres.
Hvis tjenesten din kaster en exception eller tryner i WCF rammeverket - vil du kun få ut :
Request Error
The server encountered an error processing the request. Please see the service help page for constructing valid requests to the service.
For WCF Rest Template vil en typisk config-fil se slik ut:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</modules>
</system.webServer>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<standardEndpoints>
<webHttpEndpoint>
<!--
Configure the WCF REST service base address via the global.asax.cs file and the default endpoint
via the attributes on the <standardEndpoint> element below
-->
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/>
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
That's it! Så hvor pokker skal du legge inn service behavior for å inkludere exceptions? (En service behavior er tilknyttet en tjeneste - og som du ser her finnes det ingen services)
Det første vi må få lagt inn er faultExceptionEnabled="falseTrue" inn i standardEndpoint for å påse at vi får FaultExceptions ut til klienten.Mer...