locked
Failure while browsing the wcf service in bz2010 RRS feed

  • Question

  • Hi all

    I have developed a biztalk 2010 application


    • Edited by Suja Balan Wednesday, October 26, 2016 4:03 PM
    Tuesday, June 28, 2016 11:10 AM

Answers

  • Hi Suja

    You have to browse the .svc file as well. In the ___ service folder in IIS, go to content View tab at bottom. Click on the .svc file, and click Browse link from the right-hand pane.

    So service URL will probably be something like-

    http://localhost/___/<YourServiceName>.svc


    Thanks Arindam



    Tuesday, June 28, 2016 11:14 AM
    Moderator
  • Note that GET is not applicable in your scenario.

    Close Fiddler and open again.

    When you try next time, make sure that Content-Type is not present in the header-


    Thanks Arindam

    • Marked as answer by Suja Balan Thursday, June 30, 2016 9:02 AM
    Thursday, June 30, 2016 8:15 AM
    Moderator

All replies

  • Hi Suja

    You have to browse the .svc file as well. In the ___ service folder in IIS, go to content View tab at bottom. Click on the .svc file, and click Browse link from the right-hand pane.

    So service URL will probably be something like-

    http://localhost/___/<YourServiceName>.svc


    Thanks Arindam



    Tuesday, June 28, 2016 11:14 AM
    Moderator
  • Hi Suja Balan,

    In your case from what I understand, you have not enabled the directory browsing in the iis. In case you want to browse the entire contents of the application do the following

    1) Select the application in the IIS

    2) In the middle Pane Select the "Feature View" and the select "Directory Browsing" and double click it.

    3) Then enable the browsing from the right most side pane.

    you shall be able to browse the contents of the application.

    In case you just want to browse the wcf service,

    1) Select the application in the IIS

    2) Navigate to the middle pane and select the "Contents View" tab located at the bottom. Select the .svc service and browse it.

    Hope this helps.

    Regards,

    Mandar Dharmadhikari


    Mandar Dharmadhikari

    Tuesday, June 28, 2016 11:45 AM
    Moderator
  • Hi Suja Balan,

    Can you share the details regarding the app pool that you created?

    Also can you try and do the following just to check,

    1) Create a 4.0 Integrated app pool

    2) Set a specific account to the app pool with the account which you use to log on to the server

    3) Attach the concerned application to this app pool and then browse the service.

    Please let me know if this works.

    Regards,

    mandar dharmadhikari


    Mandar Dharmadhikari

    Tuesday, June 28, 2016 12:49 PM
    Moderator
  • You may have to enable WCF HTTP Activation in Server Manager->Roles and Features.  Do an online search for your specific Windows version on how to enable it.

    Also note that the App Pool identity cannot be a Local/System account,  it should be a domain account that is part of the BizTalk Isolated Users Group.


    Thanks Arindam


    Tuesday, June 28, 2016 12:49 PM
    Moderator
  • Few issues that I see-

    1)AppPool is still showing .NET 2.0 - it should 4.0

    2)The AppPool account is incorrect - it should not be a specific user account - but a service account that is part of the BizTalk Isolated Users Group. For now test with bizdevadmin account(which I think is part of BizTalk Administrators?)

    3) You need to enable WCF HTTP Activation . Refer this. Note that the exact steps may vary for the Windows server version you have - in that case do a search for 'Enable WCF HTTP Activation' for your Windows version. 


    Thanks Arindam


    Tuesday, June 28, 2016 1:43 PM
    Moderator
  • Okay, so this is due to the BizTalkRESTRequestHandler extension that you registered for WCF-CustomIsolated adapter.

    1. From the WCF ReceiveLocation, behaviors tab, remove the above extension.

    2. Also from Platform Settings -> Adapters, for the WCF-CustomIsolated adapter, where you added the above extension, click Clear and remove the added extension. Reset IIS.

    SNAGHTML16ea3c8b


    Thanks Arindam

    Tuesday, June 28, 2016 2:45 PM
    Moderator
  • Hi Suja Balan,

    MSDN says:

    This error can occur when there are multiple versions of the .NET Framework on the computer that is running IIS, and IIS was installed after .NET Framework 4.0 or before the Service Model in Windows Communication Foundation was registered.

    I think you should refer to this link. It gives step by step guidance to overcome the error.



    Mandar Dharmadhikari


    Tuesday, June 28, 2016 4:10 PM
    Moderator
  • Hi 

    Refer these-

    To resolve this issue, run the following command line: 

    aspnet_regiis.exe /iru

    The Aspnet_regiis.exe file can be found in one of the following locations:

    %windir%\Microsoft.NET\Framework\v4.0.30319

    %windir%\Microsoft.NET\Framework64\v4.0.30319 (on a 64-bit computer)

    https://msdn.microsoft.com/en-us/library/hh169179(v=nav.90).aspx

    https://support.microsoft.com/en-in/kb/2015129


    Thanks Arindam


    Tuesday, June 28, 2016 4:10 PM
    Moderator
  • Hi Suja Balan,

    have you followed the link I had shared yesterday?

    Regards,


    Mandar Dharmadhikari

    Wednesday, June 29, 2016 6:03 AM
    Moderator
  • Hi Suja

    How did you remove it from adapters? Make sure you used the Clear button to clear out the extensions on the WCF-CustomIsolated Adapter.

    Also make sure that the BizTalkRESTRequestHandler entry is not present inside the <behaviorExtensions> element in either machine.config file(s) and the web.config file of your WCF service's virtual directory.


    Thanks Arindam


    Wednesday, June 29, 2016 6:39 AM
    Moderator
  • Yes, that is correct. You need the XMLReceive pipeline in your Receive Location.

    Make sure that the message you are posting validates against the schema - the message should have namespaces, etc.


    Thanks Arindam

    Wednesday, June 29, 2016 6:52 AM
    Moderator
  • Yes, please try it out.

    Thanks Arindam

    Wednesday, June 29, 2016 7:07 AM
    Moderator
  • Make sure that your schema assembly is GAC'ed and the Host Instance is restarted after that. To be sure, deploy the schema assembly once again.

    What is the message type defined on the Receive Shape in the orchestration?

    Make sure that the Receive Shape message type schema matches the message that you are sending from Fiddler.

    Also, check what is the subscription for the orchestration in Admin Console. Click on Tracked Service instances link in Admin Console. Now change the query to Search For - Subscriptions. For Service Name - specify your orchestration.

    Launch the result entry, go to Expression Tab, from the result displayed in the bottom, see if the subscription matches the properties on your input message.


    Thanks Arindam





    Wednesday, June 29, 2016 8:06 AM
    Moderator
  • Open the suspended message in Admin Console, go to Context and verify the values for ReceivePortID and MessageType that you see in the list of properties. Do these values match the values for ReceivePortID and MessageType in the orchestration subscription above.

    How will i Gac my schema type?

    You can do a fresh deployment of your application from Visual Studio project. If you right-click there is a Deploy option. Restart the Host Instance after it.


    Thanks Arindam

    Wednesday, June 29, 2016 9:35 AM
    Moderator
  • Are you still seeing error in fiddler/administration console?

    If yes,  go to Messages tab in adapter configuration on Receive Location and check the 'Suspend request message on failure' option.  Now try to send the message again.


    Thanks Arindam

    Wednesday, June 29, 2016 10:42 AM
    Moderator
  • So, the failure is on the Receive Location. This has nothing to do with Oracle.

    The specific error is-

    Finding the document specification by message type "Binary" failed.

    The issue is with the message that you are posting in Fiddler.

    Go to your project in Visual Studio, right-click the schema that you are accepting in Orchestration Receive Shape and click Generate Instance. It will generate a XML file. Copy that(modify field values if needed); and post this file contents from Fiddler.


    Thanks Arindam

    Wednesday, June 29, 2016 12:03 PM
    Moderator
  • You need to copy the output of Generate Instance above send the same to BizTalk via Fiddler. 

    If it still does not work, can you share a screenshot of Fiddler of the message that you are posting.


    Thanks Arindam

    Wednesday, June 29, 2016 1:40 PM
    Moderator
  • Change the verb from GET to POST in Fiddler. It is the drop-down before the URL.

    Thanks Arindam

    Wednesday, June 29, 2016 3:20 PM
    Moderator
  • Hi

    The error has nothing to do with the Oracle SendPort. The failure is on the ReceiveLocation. So, no changes needed in SendPort settings.

    Note that I am still seeing GET in Fiddler, this should be POST. No need to change any other Fiddler settings.

    Also, as mentioned earlier, in the WCF ReceiveLocation, go to Messages tab in adapter configuration and check the "Suspend Request Message on Failure" checkbox. You will see suspended messages in Admin Console and the reason for failure.

    <image removed as per OP>


    Thanks Arindam




    Thursday, June 30, 2016 4:52 AM
    Moderator
  • Okay, in that case your orchestration should get activated. Check if you are seeing any instances in Admin Console.

    Thanks Arindam

    Thursday, June 30, 2016 5:19 AM
    Moderator
  • Click on BizTalk Group in Admin Console. In Group Hub page, click on Tracked Service Instances and Suspended Instances to see if you have results.

    Read these to understand how to track execution in BizTalk-

    https://msdn.microsoft.com/en-us/library/aa560120.aspx

    https://msdn.microsoft.com/en-us/library/aa560860.aspx


    Thanks Arindam

    Thursday, June 30, 2016 5:27 AM
    Moderator
  • Did you enable the 'Suspend Request Message on Failure' setting?

    You may be getting 200 because of that.

    Launch any of the Suspended instances, in the error tab you will see the error details.


    Thanks Arindam

    Thursday, June 30, 2016 6:20 AM
    Moderator
  • No, that is not a BizTalk error.

    Double click any of the Suspended Instances and launch it - no need to resume. There is a Error Information tab(2nd one). Check error message in that.


    Thanks Arindam

    Thursday, June 30, 2016 6:39 AM
    Moderator
  • Is that error from the time you are posting from Fiddler. Is there a map on the ReceivePort? 

    Your messagetype should be the Namespace#RootNodeName from your Login message. Go to the Messages Tab after you launch the Suspended instance. Luanch the message detail and check the part and Context. In part do you see the content you are sending from Fiddler?


    Thanks Arindam

    Thursday, June 30, 2016 6:51 AM
    Moderator
  • Hi Is this the message you are getting while sending to the service or getting the response from the service?

    Regards,


    Mandar Dharmadhikari

    Thursday, June 30, 2016 7:49 AM
    Moderator
  • In Fiddler composer tab, under Parsed, make sure there is no HTTP header that is setting Content-Type to 'application/octet-stream'.

    Anways, the 500 error is the one you need to debug.


    Thanks Arindam

    Thursday, June 30, 2016 7:52 AM
    Moderator
  • Note that GET is not applicable in your scenario.

    Close Fiddler and open again.

    When you try next time, make sure that Content-Type is not present in the header-


    Thanks Arindam

    • Marked as answer by Suja Balan Thursday, June 30, 2016 9:02 AM
    Thursday, June 30, 2016 8:15 AM
    Moderator