I’ve a 64bit machine that has a web-service hosted under IIS6!. This starts throwing out errors one morning as I browse to my .svc location – “Page not found 404 Error…”
- Check that the isapi.dll is pointing to v2.0
C:\WINDOWS\microsoft.net\Framework\v2.0.50727\It appears that an overnight .NET 4 installation was pushed out and IIS 6 extensions were mapped to .NET v4. To resolve this, I manually changed the .svc extension in IIS 6 to v2.0+.
Screen shot of my machine (under IIS –> Default Web Site –> MySite.WCF) before I made the change
After the change:
Now pointing to : C:\WINDOWS\microsoft.net\Framework\v2.0.50727\aspnet_isapi.dll
Make sure to restart IIS
- Make sure your IIS service account has access to the C:\windows\temp folder. Your WCF service generates temporary files behind the scene and skipping this might display errors such as: System.InvalidOperationException: Unable to generate a temporary class
- From your command prompt run the following command
aspnet_regiis.exe -i –enable
- Then (command prompt again),
cd C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation
- If it still doesn’t solve it, follow this MSDN article
Happy setting up 🙂
Posted in Visual Studio, WCF | Tagged BizTalk, Page not found, SVC, Sydney, System.InvalidOperationException: Unable to generate a temporary class, WCF, WCF 404 Error, Zeeshan | 3 Comments »
Alot has been said about the request response scenario in BizTalk. I’m afraid this topic is still in confusion amongst BizTalk developers in general, and while understanding the capabilities of BizTalk’s ESB toolkit.
The ESB toolkit 2.0/2.1 allows sending message to destination system and correlating a response on it. This is acheived by the Enterprise application block (Caching) behind the scenes. The itinerary header for the initial send is cached, and respective correlation information (TransmitID) is stored in the Application block. Upon receiving response, it is correlated on the same token, the itinerary header is retreived from the Cache manager and then attached to the message.
I’ve elaborated the whole working with two pictures. They carry a a lot of detail – but worth the effort!
Happy coding 🙂
Posted in BizTalk 2010 | Tagged BizTalk, BizTalk ESB: Understanding the request response scenario, toolkit, Zeeshan Sydney | Leave a Comment »
I must admit advocating against the BizTalk ESB at times. However, this one feature called the Itinerary Broker Service is pure brilliance.
In short, consider this as a decide shape in workflow. The itinerary look at a certain value (in the context), and decides on the path – just like a decide shape in a workflow. For Itineraries this step is called the Broker Service. Based on a certain value (in the context), the respective itinerary step is chosen.
Elaboration (Itinerary Steps). Consider an itinerary with the following steps:
2. Routing (to send port rXYZ)
3. Routing (to send port rABC)
Here we want Step 1 (MessagingBroker) to evaluate a value on the context of the message. If true, execute step 2 – else execute step 3.
Provided two incoming message types (type1 and type2) are pushed into the ESB. If MessageType = type1, then ==> follow step 2, else follow step 3.
That’s all on the broker service. Remember that this works on the messaging level. Read more about this on the following MSDN link
Further Info (By Nick Hauenstein): Click here
Sample (By Nick Hauenstein): Click here
Happy designing 🙂
Posted in BizTalk 2010 | Tagged BizTalk 2010, ESB, Itinerary Broker Service, Itinerary routing decision, Zeeshan Sydney | Leave a Comment »
This post describes debugging on parallel BizTalk components (as in threads) running in VS 2010. With my current application, I submitted a message that would be routed to multiple locations. Before being routed, the file was being archived to a disk location (on the send component).
While debugging, the editor would switch between threads (as expected). I setup a breakpoint on the Archive Component, and the data-layer. In order to focus my debugging on the Archive component, I wanted to pause all other interfering threads.
To view the running thread in VS 2010 IDE, open the threads window, and select your process (appears under BizTalk Server 2010), right click and hit pause
Interestingly, if I open up the Parallel tasks window during debugging I get a diagram of all my tasks 🙂
This shows me two parallel tasks 1. ArchiveMessage… 2. Helper.Advance…
Right click on Show External Code on the Parallel tasks (diagram above),
… And this would display a complete (stack) trace on how the call originated
Happy debugging 🙂
Posted in BizTalk 2010, Visual Studio | Tagged .NET 4, BizTalk 2010 Debug with Parallel tasks in Visual Studio 2010 | Leave a Comment »
Here is a handy command to clear all tables on your (local) database.
- Select the Database in SQL Server Management Studio, and hit New Query
- Run the following command
EXEC sp_MSforeachtable @command1 = "DROP TABLE ?"
That is good for dropping all tables. Most of the time, you’d like to delete all table data. Also, to overcome tables associations on constraints/keys, etc. Use the following in this case:
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'DELETE FROM ?'
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
Note: You cannot use TRUNCATE with above syntax!
Happy coding 🙂
Posted in SQL | Tagged BizTalk, SQL, SQL Drop all database tables, Sydney, Zeeshan | 2 Comments »
Guid.NewGuid is always unique. MSDN describes it as containing several sections for a given number – like the timestamp, clock sequence and node. As the example, generating the GUID 8743428c-ef91–4d05–9e7c–4a2e856e813a
consists of the following sections:
8743428c– Low field of the timestamp
ef91 – Middle field of the timestamp
4d05 – High field of the timestamp with multiplexed version number
9e – High field of the clock sequence with multiplexed variant type
7c – Low field of the clock sequence
4a2e856e813a – Spatially unique node identifier
For more info: Click here
Just for info 🙂
Posted in Visual Studio | Tagged BizTalk, Sydney, What Guid?, Zeeshan | Leave a Comment »
This is a handy snippet to remove namespaces from an xml document.
XmlDocument xmlDocument = new XmlDocument();
string xmlText = xmlDocument.OuterXml;
xmlText = System.Text.RegularExpressions.Regex.Replace(
xmlText, @"(xmlns:?[^=]*=[""][^""]*[""])", "",
Happy coding 🙂
Posted in BizTalk 2010, WCF | Tagged .NET 4, Remove default namespaces from incoming document | Leave a Comment »