You don’t need another WCF client to test WCF services if you already have fantastic Postman installed on your machine. But requesting WCF service using Postman needs little more than just providing a Service Url and a Xml body to the SOAP request. One issue developers always stumble upon first time when using Postman to call a Wcf service is this cryptic error message: The message with Action '' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher..
Following is an example ActionNotSupported fault response raised by the Wcf Service:
The message with Action '' cannot be processed at the receiver, due to a ContractFilter mismatch at the
EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and
receiver) or a binding/security mismatch between the sender and the receiver. Check that sender and receiver
have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).
Inspecting the exception fault string more carefully, you will surely realize that the exception has something to do with Action “. Postman is apparently not sending any Action contract with the SOAP request, and Wcf service is treating it as empty Action. With the empty received Action, service trying to match it with its own Action contract which result as mismatch. And this is what is causing the exception.
To resolve the issue, you need to explicitly provide a SOAPAction to the header with your SOAP request to the service. You can get the SOAPAction of the web method from the WSDL document of your Wcf service. Just navigate to the WSDL Uri, which usually your Wcf service Url appended with “?wsdl”, and look for soap:operation node of the web method you want to call. Copy the value of soapAction attribute which will be something like http://tempuri.org/I<Your Service Name>/<Method Name> and use this value as SOAPAction of your service call.
Adding SOAPAction header in Postman is simple. You have to goto Headers tab of the Postman for the Wcf service, add a New key, provide Key as “SOAPAction” and the Value whatever you copied in above step.
With the SOAPAction configured for your Wcf service, hit Send button in Postman to make service call and voila! You should receive proper SOAP response from the service. Save the Service request in the Postman so that you don’t have to do the same SOAPAction configuration again for the service.
My automatized workflow to setup Postman to call Wcf service is following:
Make GET call of the service Url with appended “?wsdl”.
Copy the value of soapAction attribute of your SOAP method.
Change Http method to POST and remove “?wsdl”
Provide header with key “SOAPAction” and value copied soapAction attribute.
If you shuffle a lot between Linux/Mac and Windows OS, you surely miss many Linux shell commands in Windows Command Prompt and you definitely wish if you can replicate or have some kind of workaround of those commands in Windows to make life bit easier. One of those commands is navigating back to the previous directory. In Linux, you can just type: cd - and voila, you go back to your previous directory. No need to check paths of previously entered directories. That’s one handy command. As usually happen with most productive shell commands, there is no equivalent command parameter in DOS.
I was looking for some kind of workaround to achieve same in DOS but when I couldn’t find any solution online so I decided to devise and build my own solution. It started with a very basic DOS batch file which just simulates Linux cd – command but slowly and gradually it grows over the period of time as I added more and more features.
So how does it work? To implement this solution, you will need two batch files: ccd.bat and dos_init.cmd. ccd.bat will have actual batch commands which take care of redirecting command to appropriate branch and keeping the history of visited directories whereas dos_init.cmd will create DOSKEY aliases for cd command. You should create both files in one of your PATH directories (for example C:\Windows) so that DOS will able to locate these in Command Windows.
You always require running dos_init.cmd before using ccd.bat so that assign aliases are available for ccd batch file. To automate that, you can simply add an entry in Windows Registry which will automatically run dos_init.cmd command every time you open Command Windows.
If you hate that slight flicker in IE browser between page transitions then you will find this snippet useful. When the user navigates from one page to another, there is a slight white out before next page renders on IE. On other browsers like FireFox or Chrome has a relatively smoother handle for such transition. If your web application has the significant number of post backs then this becomes more annoying to users.
To reduce this flicker in IE, simply add below META tags in the HEAD section of your page.
By reducing the duration of fading content from the previous page and revealing new content from next page, user experience relatively smooth transition between pages. The good thing about above implementation is that above META tags will not have any impact on other browsers.
Sometimes it always helps to get the list of all modified tables or stored procedures before check-in the code or wrapping up the development for the build. Some developers usually keep this kind list in a file and they update this file every time they modify any table or stored procedure in their development environment. Following are some handy SQL snippets which can provide you list of the tables, or stored procedure modified in the specified duration.
Milan Negovan has written an article to provide an in-depth perspective on ViewState mechanism. In his article, he suggested some of the do’s and dont’s of using ViewState, for example, how simply disabling view state of the whole page can greatly enhance the performance of the page, if you just need to display a DataGrid on the page with no PostBack.
I have seen many occasions that developers left EnableViewState true even if they just want to display a basic report page containing a grid control. This leads to the page to generate huge rendered payload for the ViewState.