CSLA .NET

Vibrant discussion about CSLA .NET and using the framework to build great business applications.

Forum has moved

New location: CSLA .NET forum


CSLA .NET Resources:
  • CSLA .NET forum
  • CSLA .NET home page
  • Local DataPortal works, but Remote DataPortal does not

    rated by 0 users
    Not Answered This post has 0 verified answers | 9 Replies | 2 Followers

    Top 500 Contributor
    21 Posts
    Brad Rem posted on Wed, Jul 3 2013 9:36 AM

    On my local development machine, I have a WinForms app that connects to the WCF based DataPortal and everything works fine.

    When I publish the DataPortal to the server and change my connection in my WinForm app to use the remote data portal, it throws the following exceptions:

    "The caller was not authenicated by the service."

    "The request for the security token could not be satisifed because authenication failed."

    When I browse to http:://www.mycompany.com/DataPortal.svc, I get the proper information and can display the WSDL information, too.

    My web.config has this in it:

         <system.serviceModel>
            <services>
                <service name="Csla.Server.Hosts.WcfPortal" behaviorConfiguration="returnFaults">
                    <endpoint
                        contract="Csla.Server.Hosts.IWcfPortal"
                        binding="wsHttpBinding"
                        bindingConfiguration="wsHttpBinding_IWcfPortal"/>
                </service>
            </services>
            <bindings>
                <wsHttpBinding>
                    <binding name="wsHttpBinding_IWcfPortal" maxReceivedMessageSize="2147483647">
                        <readerQuotas
                            maxBytesPerRead="2147483647"
                            maxArrayLength="2147483647"
                            maxStringContentLength="2147483647"
                            maxNameTableCharCount="2147483647"
                            maxDepth="2147483647"/>
                    </binding>
                </wsHttpBinding>
            </bindings>
            <behaviors>
                <serviceBehaviors>
                    <behavior name="returnFaults">
                        <serviceDebug includeExceptionDetailInFaults="true"/>
                        <serviceMetadata httpGetEnabled="true"/>
                    </behavior>
                </serviceBehaviors>
            </behaviors>
        </system.serviceModel>

     And my app.config contains the usual CSLA settings:

    <add key="CslaPropertyChangedMode" value="Windows"/>
    <add key="CslaDataPortalProxy" value="Csla.DataPortalClient.WcfProxy, Csla"/>
    <add key="CslaDataPortalUrl" value="http://www.mycompany.com/DataPortal.svc"/>
    <add key="CslaAuthentication" value="Csla"/>

     Any guidance for how I can use my data portal once it's published to the server?

     

     

    All Replies

    Top 10 Contributor
    2,279 Posts

    From the exception message there is a mismatch in authentication. 

    Is your server configured to use Windows Authentication

    If so try to activate Anonymous Authentication on your server and check if the portal works as expected. 

    If you want to use WIndows Authentication you must also configure WCF to use that authentication type on both server and client. 

    Jonny Bekkum, Norway CslaContrib Coordinator

    Top 500 Contributor
    21 Posts

    I have just confirmed in IIS that the Authentication is has Anonymous Authentication enabled and all other forms are disabled.

     

     

     

     

    Top 10 Contributor
    2,279 Posts

    Do you have 

    <add key="CslaAuthentication" value="Csla"/> 

    in your web.config? 

    Jonny Bekkum, Norway CslaContrib Coordinator

    Top 500 Contributor
    21 Posts

    JonnyBee:

    Do you have 

    <add key="CslaAuthentication" value="Csla"/> 

    in your web.config? 

    Yes, I have that in there.  It is in my web.config and also my app.config.

    Top 10 Contributor
    2,279 Posts

    Well, then it's likely hardcore transport debugging to be done.

    You should use FIDDLER or a network trace tool to inspect the communication and try to detect why/where there is mismatch in the authentication. 

    Jonny Bekkum, Norway CslaContrib Coordinator

    Top 500 Contributor
    21 Posts

    I should say at this point that I'm trying to host in Azure.

    This is what I've done (among a million other things, but these are the most salient):

    I've created a plain WCF service and confirmed that I can host it in Azure.

    Rocky has an AzureHost example project that is associated with the DataPortal book. It runs a Silverlight application and I've confirmed that it runs in Azure.

    Then, I added a Windows Form project to the AzureHost project and set the CslaDataPortalUrl element in the WinForm App.Config to the local AzureHost instance and it actually runs.

    But, once I publish the data portal to Azure, change my CslaDataPortalUrl to the Azure address for the .svc file, I get the exception "The request for security token could not be satisfied because authentication failed."

    Azure defaults to anonymous authentication so I'm not sure what else I need to be looking at. Is Azure really that different that IIS, even though they love to say it is not?

    Top 500 Contributor
    21 Posts

    After trying ever machination I could find with getting an Azure WCF-based CSLA data portal to work with a WinForms application, I'm finally to the point where I don't think it's possible.  I'm able to get a standard WCF service to work in Azure, but getting CSLA to work has been fruitless no matter how many settings I fiddle with in the config files.

    The CSLA examples are for Silverlight programs and they work in Azure, and I've even tried to take the AzureHost project and modify it to have a WinForms app access the library, but that has failed. In fact, I've created a test GitHub project to make it easy for somebody to point out how to hook up WinForms to Azure:

    https://github.com/BradRem/AzureHostTest

    I also have a StackOverflow question with a nice bounty running and nobody has submitted a solution:

    http://stackoverflow.com/questions/17557700/how-do-i-configure-a-csla-wcf-dataportal-for-azure

    I'm beyond baffled.

     

     

    Top 10 Contributor
    9,475 Posts

    When you say "in Azure" do you mean in a web site or a cloud service?

    I have numerous data portal end points running in cloud services (web role). I don't know that I've tried hosting one in an azure web site, so there could be unforeseen issues there I suppose.

    Rocky

    Top 500 Contributor
    21 Posts

    Azure, cloud services with a web role.  You have a project called AzureHost that goes along with the DataPortal book. I essentially took that project, removed the Silverlight stuff and tried to make it work with WinForms app because I wasn't able to get my actual project working.  I've tried certifcates and different wsHttpSettings and practically everything under the sun, but keeping running into one exception after another.

    I direct you to my StackOverflow question for my complete write up:

    http://stackoverflow.com/questions/17557700/how-do-i-configure-a-csla-wcf-dataportal-for-azure

    And my bare-bones test project on GitHub to illustrate my struggles:

    https://github.com/BradRem/AzureHostTest

    I'm feeling at the end of my rope.

     

     

    Page 1 of 1 (10 items) | RSS

    Copyright (c) 2006-2014 Marimer LLC. All rights reserved.
    Email admin@lhotka.net for support.
    Powered by Community Server (Non-Commercial Edition), by Telligent Systems