locked
Getting the simplest SharePoint LightSwitch HTMLClient apps to work against a local (on-premise) single server SP2013 VM? RRS feed

  • Question

  • I'm using VS2012 Update 3 and I'm having trouble figuring out how to make the above scenario work.  My local SP013 dev VM is:

    VS2012.3, SP2013 Server, SQL Server all running on single "developer" VM.

    I can:

    1. create a new LS HTML project

    2. connect to a SP list and create a new DataSource

    3. create screens

    4. Press F5

    5. SP2013 asks if I "trust it" and I click that I do.

    6. SP2013 redirects to https://localhost:44300/SharePointLaunch.aspx?SPHostUrl=http%3A%2F%2Fdev%2Esp2013%2Elocal&SPLanguage=en%2DUS&SPClientTag=0&SPProductNumber=15%2E0%2E4420%2E1017

    7. then I get an IIS permissions error (see below).  Any pointers to how to make this simplest of simple environments work for LS/HTML apps running on a local SP2013 VM?

    The VM was built using steps documented in the Critical Path Training build guide.

    ------------------------------------------------
    HTTP Error 401.0 - Unauthorized

    You do not have permission to view this directory or page.

    Most likely causes:
    •The authenticated user does not have access to a resource needed to process the request.

    Things you can try:
    •Check the failed request tracing logs for additional information about this error. For more information, click here.

    Detailed Error Information:

    Module
       LightSwitchModule

    Notification
       AuthorizeRequest

    Handler
       PageHandlerFactory-Integrated-4.0

    Error Code
       0x00000000

    Requested URL
       https://localhost:44300/SharePointLaunch.aspx?SPHostUrl=http%3A%2F%2Fdev%2Esp2013%2Elocal&SPLanguage=en%2DUS&SPClientTag=0&SPProductNumber=15%2E0%2E4420%2E1017

    Physical Path
       C:\Users\Administrator\documents\visual studio 2012\Projects\LSTasks144\LSTasks144\Bin\Debug\SharePointLaunch.aspx

    Logon Method
       Anonymous

    Logon User
       Anonymous

    Request Tracing Directory
       C:\Users\Administrator\Documents\IISExpress\TraceLogFiles\LSTASKS144


    Xpert Search Agents for Microsoft web sites: http://www.parallelspace.net/MicrodeX







    Thursday, September 12, 2013 8:22 PM

All replies

  • Hi Michael,

    According to your description, I’d like to suggest you to try the followings:

    #1

    Check for errors in the URL. It's possible that the 401 Unauthorized error appeared because the URL was typed wrong or the link that was clicked on points to the wrong URL - one that is for authorized users only.

    If you're sure the URL is valid, visit the website's main page and look for a link that says Login or Secure Access. Enter your credentials here and then try the page again. If you don't have credentials, follow the instructions provided on the website for setting up an account.

    #2

    Fixing 401 errors - general

    Each Web Server manages user authentication in its own way. A security officer (e.g. a Web Master) at the site typically decides which users are allowed to access the URL. This person then uses Web server software to set up those users and their passwords. So if you need to access the URL (or you forgot your user ID or password), only the security officer at that site can help you. Refer any security issues direct to them.

    If you think that the URL Web page *should* be accessible to all and sundry on the Internet, then a 401 message indicates a deeper problem. The first thing you can do is check your URL via a Web browser. This browser should be running on a computer to which you have never previously identified yourself in any way, and you should avoid authentication (passwords etc.) that you have used previously. Ideally all this should be done over a completely different Internet connection to any you have used before (e.g. a different ISP dial-up connection). In short, you are trying to get the same behaviour a total stranger would get if they surfed the Internet to the Web page.

    If this type of browser check indicates no authority problems, then it is possible that the Web server (or surrounding systems) have been configured to disallow certain patterns of HTTP traffic. In other words, HTTP communication from a well-known Web browser is allowed, but automated communication from other systems is rejected with an 401 error code. This is unusual, but may indicate a very defensive security policy around the Web server.

    Fixing 401 errors - CheckUpDown

    When you set up your CheckUpDown account, you may optionally provide two items 2. Web Site User ID and 3. Web Site Password. You should provide these only if the site uses HTTP Basic Authentication. If you provide them, the CheckUpDown robot always uses them. This will result in a 401 error if in fact the site does not use this authentication. Conversely, if you do not provide them and the site does use this authentication, you also get a 401 error.

    If however your URL is open to all comers, then an 401 message should not appear. Because it indicates a fundamental authority problem, we can only resolve this by negotiation with the personnel responsible for security on and around the Web site. These discussions unfortunately may take some time, but can often be amicably resolved. You can assist by endorsing our service to the security personnel. Please contact us (email preferred) if you see persistent 401 errors, so that we can agree the best way to resolve them.

    For more details, you may refer to the links below:

    HTTP Error 401 Unauthorized

    http://www.checkupdown.com/status/E401.html

    401 Unauthorized Error Resolution

    http://pcsupport.about.com/od/findbyerrormessage/a/401error.htm
    Friday, September 13, 2013 11:34 AM
  • @sheshelovely,

    Before I respond to your replies, can you confirm the following:

    1. Before posting your reply, had you used Visual Studio LightSwitch to create a LightSwitch HTML Client app?

    2. Before posting your reply, had you used Visual Studio LightSwitch to create a SharePoint LightSwitch HTML Client app?

    Based on your replies, it doesn't appear you have done any of the above. Your post is largely irrelevant.

    Michael


    Xpert Search Agents for Microsoft web sites: http://www.parallelspace.net/MicrodeX




    Friday, September 13, 2013 1:29 PM
  • I tried simplifying my original scenario by running VS2012.3 from my physical host (laptop) - instead of inside my local SP2013 VM.

    1. I created one SharePoint LS HTML VS2012.3 solution (running against a Task list on an Office 365 site and everything works fine.  It's called O365Tasks4.

    2. I created a second new SharePoint LS HTML VS2012.3 solution running against a Task list in my SP2013 site running in a VM running on my laptop.  This scenario fails the same as the original scenario.  Even when I drop a simple default.htm in the visual studio 2012\Projects\LocalTasks1\LocalTasks1\LocalTasks1.Server folder of my LS solution, I get the 401 error.  It's called LocalTasks1.

    There must be something wrong with the IISExpress config settings or the web.config when the SP2013 web site is in a local VM (and not an Office 365 web site).

    Some more data

    3. This is what the end of my IISExpress applicationhost.config looks like:

        <location path="O365Tasks4">
            <system.webServer>
                <security>
                    <authentication>
                        <anonymousAuthentication enabled="true" />
                        <windowsAuthentication enabled="false" />
                    </authentication>
                </security>
            </system.webServer>
        </location>
        <location path="LocalTasks1">
            <system.webServer>
                <security>
                    <authentication>
                        <anonymousAuthentication enabled="true" />
                        <windowsAuthentication enabled="false" />
                    </authentication>
                </security>
            </system.webServer>
        </location>
    </configuration> 

    LocalTasks1 is the one that's failing when IISExpress tries to launch SharePointLauncher.aspx. (O365Tasks4 works fine.)

    4. I tried changing <windowsAuthentication enabled="false" /> to true and I'm asked to authenticate locally (which I took to be a good sign).

    5. Regardless of whether I'm authenticated or anonymous, the 401 error is being generated by the LightSwitch assembly
    Microsoft.LightSwitch.Server.Implementation.Internal.SharePointAuthentication.SharePointAuthentication (LightSwitchModule).

    Here's some of the IISExpress trace:

    80.                 -NOTIFY_MODULE_START
    ModuleName LightSwitchModule
    Notification AUTHORIZE_REQUEST
    fIsPostNotification false
    <fieldset class="no-border" id="section_detail_81">
    0 ms
    Verbose
    81.                 -AspNetPipelineEnter
    ConnID 0
    Context ID {00000000-0000-0000-1500-0080070000FF}
    Data1 Microsoft.LightSwitch.Server.Implementation.Internal.SharePointAuthentication.SharePointAuthentication
    </fieldset><fieldset class="no-border" id="section_detail_82">
    0 ms
    Verbose
    82.                 -AspNetPipelineLeave
    ConnID 0
    Context ID {00000000-0000-0000-1500-0080070000FF}
    Data1 Microsoft.LightSwitch.Server.Implementation.Internal.SharePointAuthentication.SharePointAuthentication
    </fieldset><fieldset class="no-border" id="section_detail_83">
    0 ms
    Warning
    83.                 -MODULE_SET_RESPONSE_ERROR_STATUS
    ModuleName LightSwitchModule
    Notification AUTHORIZE_REQUEST
    HttpStatus 401
    HttpReason Unauthorized
    HttpSubStatus 0
    ErrorCode The operation completed successfully.
    (0x0)
    ConfigExceptionInfo
    </fieldset><fieldset class="no-border" id="section_detail_84">
    0 ms
    Verbose
    84.                 -NOTIFY_MODULE_END
    ModuleName LightSwitchModule
    Notification AUTHORIZE_REQUEST
    fIsPostNotificationEvent false
    NotificationStatus NOTIFICATION_FINISH_REQUEST
    </fieldset>

     

    6. When I put a default.htm file in the server folder, I get the same error from the same LightSwitchModule.







    Saturday, September 14, 2013 4:28 AM
  • This is kind of cool.  The (decompiled) source for the LightSwitchModule module appears to be on the http://dotnetinside.com/framework/Microsoft+Light+Switch/Microsoft.LightSwitch.Server/SharePointAuthentication web site.

    The 401 is issued in this LightSwitch runtime method:

    private void AuthorizeRequest(object sender, EventArgs e)
    {
    HttpContext current = HttpContext.Current;
    if (current.SkipAuthorization)
    {
    return;
    }
    HttpRequest request = current.Request;
    if (!this.RequiresSharePointAuthentication(request.Url))
    {
    return;
    }
    IPrincipal user = current.User;
    HttpResponse response = current.Response;
    if (user == null || !user.Identity.IsAuthenticated || SecurityHelper.CurrentSecurityState.SharePointAuthData == null)
    {
    response
    .StatusCode = 401;
    current
    .ApplicationInstance.CompleteRequest();
    }
    }

    Does this help anyone?


    Xpert Search Agents for Microsoft web sites: http://www.parallelspace.net/MicrodeX



    Saturday, September 14, 2013 11:44 AM
  • How can the SharePointAuthLoggingHelper be turned on?  (Reference: http://dotnetinside.com/framework/Microsoft+Light+Switch/Microsoft.LightSwitch.Server/SharePointAuthentication and http://dotnetinside.com/framework/Microsoft+Light+Switch/Microsoft.LightSwitch.Server/SharePointAuthLoggingHelper).

    Note: I've tried to enable LS tracing by following http://msdn.microsoft.com/en-us/library/vstudio/gg602392.aspx but opening a second instance of IE to browse http://localhost:44301/LocalTasks1/Trace.axd doesn't return with an HTML page:

    HTTP Error 401.0 - Unauthorized

    You do not have permission to view this directory or page.

    <fieldset>

    Most likely causes:

    • The authenticated user does not have access to a resource needed to process the request.
    </fieldset>
    <fieldset>

    Things you can try:

    • Check the failed request tracing logs for additional information about this error. For more information, click here.
    </fieldset>
    <fieldset>

    Detailed Error Information:

    Module    LightSwitchModule
    Notification    AuthorizeRequest
    Handler    StaticFile
    Error Code    0x00000000
    Requested URL    https://localhost:44301/LocalTasks1/trace.vxd
    Physical Path    E:\Users\Administrator\documents\visual studio 2012\Projects\LocalTasks1\LocalTasks1\Bin\Debug\LocalTasks1\trace.vxd
    Logon Method    Negotiate
    Logon User    PSN-W12S-720\Administrator
    Request Tracing Directory
    </fieldset>

    Saturday, September 14, 2013 11:51 AM
  • There doesn't appear to be anything useful in the Windows Event Log except for:

    Log Name:      Application
    Source:        IIS Express
    Date:          9/13/2013 11:48:18 PM
    Event ID:      2284
    Task Category: None
    Level:         Warning
    Keywords:      Classic
    User:          N/A
    Computer:      PSN-W12S-720
    Description:
    FailedRequestTracing module failed to write buffered events to log file for the request that matched failure definition. No logs will be generated until this condition is corrected. The problem happened at least 1 times in the last 5 minutes. The data is the error.
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
      <System>
        <Provider Name="IIS Express" />
        <EventID Qualifiers="32768">2284</EventID>
        <Level>3</Level>
        <Task>0</Task>
        <Keywords>0x80000000000000</Keywords>
        <TimeCreated SystemTime="2013-09-14T03:48:18.000000000Z" />
        <EventRecordID>8608</EventRecordID>
        <Channel>Application</Channel>
        <Computer>PSN-W12S-720</Computer>
        <Security />
      </System>
      <EventData>
        <Data>1</Data>
        <Data>5</Data>
        <Binary>50000780</Binary>
      </EventData>
    </Event>


    Xpert Search Agents for Microsoft web sites: http://www.parallelspace.net/MicrodeX

    Saturday, September 14, 2013 12:12 PM
  • Visual Studio 2013 RC doesn't fix this.  Works against Office 365 web sites and not local SP2013 VMs:

    HTTP Error 401.0 - Unauthorized

    You do not have permission to view this directory or page.

    <fieldset>

    Most likely causes:

    • The authenticated user does not have access to a resource needed to process the request.
    </fieldset>
    <fieldset>

    Things you can try:

    • Check the failed request tracing logs for additional information about this error. For more information, click here.
    </fieldset>
    <fieldset>

    Detailed Error Information:

    Module    LightSwitchModule
    Notification    AuthorizeRequest
    Handler    PageHandlerFactory-Integrated-4.0
    Error Code    0x00000000
    Requested URL    https://localhost:44303/SharePointLaunch.aspx?SPHostUrl=http%3A%2F%2Fdev%2Esp2013%2Elocal&SPLanguage=en%2DUS&SPClientTag=0&SPProductNumber=15%2E0%2E4420%2E1017&SPAppWebUrl=http%3A%2F%2Fapp%2Da2d5a3ce5bce9a%2Eapps%2Esp2013%2Elocal%2FLocalTasksB13
    Physical Path    e:\users\administrator\documents\visual studio 2013\Projects\LocalTasksB13\LocalTasksB13\bin\Debug\SharePointLaunch.aspx
    Logon Method    Anonymous
    Logon User    Anonymous
    Request Tracing Directory    E:\Users\Administrator\Documents\IISExpress\TraceLogFiles\LOCALTASKSB13.SERVER
    </fieldset>

    Xpert Search Agents for Microsoft web sites: http://www.parallelspace.net/MicrodeX

    Saturday, September 14, 2013 7:34 PM
  • Saturday, September 14, 2013 9:08 PM
  • Hi Michael!

    I am actually getting the same error when using o365 developer site and VS2013RC.

    So, you actually dont have any problems with o365, dont you?

    Thanks

    Nick

    Tuesday, September 17, 2013 1:41 PM
  • Michael / nicsav - how do you have authentication for the SharePoint app configured?  In the SharePoint properties (where you enable SharePoint), did you configure it for ACS/Secret or High-Trust using a certificate.

    For O365 - you must use ACS.  For on-prem (like your VM) you can use either ACS or a Cert, but to use ACS you must have an ACS server configured in SharePoint.

    Tuesday, September 17, 2013 3:04 PM
    Moderator
  • Hi Brian!

    Thank you for your reply.

    What I am doing is I am trying to create blank application in lightswitch HTML. After I enable sharepoint and set the address to my on premisses sharepoint web site. The application is published, after it asked me for Trust, I trusted it, and aftet I get 

    HTTP Error 401.0 - Unauthorized

    I am not configuring publishing yet. I just run Start (Debug) to run it from localhost.

    Are there any other actions I need to follow to be able to run it on premisses?

    Thank

    Nick

    Thursday, September 19, 2013 3:35 AM
  • Brian!

    SPAppToken  
    SPSiteUrl http://dvsp13/sites/dev
    SPSiteTitle Dev
    SPSiteLogoUrl  
    SPSiteLanguage en-US
    SPSiteCulture en-US
    SPRedirectMessage EndpointAuthorityMatches
    SPErrorCorrelationId 4b73449c-49f1-9086-6647-315825b3a231
    SPErrorInfo

    The Azure Access Control service is unavailable.

    I am not sure, may be this is the error from trace?

    Thanks 


    Thursday, September 19, 2013 7:07 AM
  • It’s actually not an OAuth/ACS issue in the on-premise scenario.  To quote from Reza and company:

    ACS cannot be used in on-premise deployments without involving an Office 365 tenancy.  That means there is no OAuth token either.  Apps need to use a different security token created using the Server-to-Server (S2S) configuration.  For more information, see the product documentation at MSDN http://msdn.microsoft.com/en-us/library/fp179901.aspx.

    The MSDN article is poorly organized …esp. the beginning ...but it works.  Make sure you read the Notes sections. 

    I now have LS HTMLClient apps running against a local (on-premise) SP2013 enviroument working when I run VS2012.3 inside the VM by using the S2S approach described in the above article.

    Michael Herman - Toronto


    Xpert Search Agents for Microsoft web sites: http://www.parallelspace.net/MicrodeX



    Thursday, September 19, 2013 11:13 AM
  • Hi Michael!

    Thank you for your reply.

    I have actually got it working as well. But, I am expiriencing some issues with connection to SharePoint lists.

    I have no issues with displaying data, but Update and Create doesnt seem to be working. There are two authontification options  for Sharepoint List :Automatically Chose the User Identity and username/password. 

    With first option I am not getting any display results at all. When I run it from the Debug I have got error saying that Issuer is not trusted. When I publish app - no errors and no results. 

    When I am using username/password - I am able to see items which are in List. However I am not able to update or add new items.

    1) When Update I get error: The etag value in the request Header does not match with the current etag value...

    2) When creating new Item - Value cannot be null. Parameter name: webFullUrl

    I have a basic list called TestList with all default fields. I am trying to update a Title field.

    Michael and Brian!

    Do you guys have any ideas what could be wrong?

    Thanks

    Nick


    • Edited by nicksav Thursday, September 19, 2013 12:13 PM
    Thursday, September 19, 2013 12:12 PM
  • Michael - another thing you *could* look into is a hybrid configuration of the sharepoint farm that would let you use ACS for your apps.  Granted, I think this is much more work than S2S, but if you have a lot of apps it can be easier in the long run.

    Here are some links you could look at to learn more, but they might make the S2S article look like a child's book:

    http://blogs.technet.com/b/mspfe/archive/2013/01/31/configuring-sharepoint-on-premise-deployments-for-apps.aspx

    http://blogs.msdn.com/b/besidethepoint/archive/2012/12/10/sharepoint-low-trust-apps-for-on-premises-deployments.aspx

    http://technet.microsoft.com/en-us/library/fp161236

    I looked for a "single authoritative article" and don't know which might be it...

    Just FYI

    Thursday, September 19, 2013 3:30 PM
    Moderator
  • Nick - Just to make sure I understand...

    - You have SP 2013 on-prem and configured your app to use S2S

    - you're attaching to a SharePoint list and want to CRUD on the list

    - you've tried both options for Auth against that list, neither work completely

    If that's all correct, can you tell me - is the list hosted on the same site you're debugging against?

    SharePoint URL == Attached data source URL?

    Thursday, September 19, 2013 3:49 PM
    Moderator
  • Thanks Brian for your reply.

    To make it clear. 

    1) DVSP13 - sharepoint 2013 on prem server

    2) DV03W8APP - application server 

    I am using S2S with certificates to make it works. Everything is ok. I can run debug on local IIS express

    and I can publish without any problems. 

    Problems come when I want to use SharePoint list. 

    I have my dev site on http://dvsp13/sites/dev

    My app published to that  site.

    My SharePoint list, which I am using as a datasource, located in the same dev site.

    I have tried both authontification options. 

    Using owner credentials I can see items in my app, but not able to process any CRUD opperations (Update, Insert)

    With second options - it just doesnt work at all. No data dispalyed, errors on Insert.

    Hope it is clear now.

    Thank you for helping me.

    Nick

    Thursday, September 19, 2013 11:09 PM
  • Brian, Just a quick update.

    SharePoint URL == Attached data source URL?  --- Yes.

    I have actuually tried using not SharePoint list, but SQL data base.

    And also Just a Table in LighSwitch. Can view no updates.

    The same error.

    View is ok, but Edit and Insert always return this error: Value cannot be null. Parameter name: webFullUrl

    The same for localhost and published app.
    • Edited by nicksav Friday, September 20, 2013 12:12 AM
    Thursday, September 19, 2013 11:48 PM
  • And some more updates:

    Error comes from Odata.request for update:

    Here is a request:

    Request URL:https://localhost:44311/ApplicationData.svc/$batch
    Request Method:POST
    Status Code:202 Accepted
    Request Headersview source
    Accept:multipart/mixed
    Accept-Encoding:gzip,deflate,sdch
    Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
    Connection:keep-alive
    Content-Length:572
    Content-Type:multipart/mixed;boundary=batch_2a2e-5393-8906
    Cookie:LS_SP_AuthN-fb3ae039-a828-4b52-9fc1-84f798c8413a=8FF9CEFFAC1641030100DF7F579A5410508F1F7F2980044AC08D833C2E0D2C7318F022231004D21FDC8C4EE268B55B1F3104B794581B22F32AAAC21886B158EF1FEDC41850FD3F6E6BEF110B32A79386234CE19F9414581DFBA392105E7A4B3F1AB8D3CC97; ; msls-client-parameters=preferredLanguage=ru-RU
    DataServiceVersion:1.0
    Host:localhost:44311
    MaxDataServiceVersion:3.0
    Origin:https://localhost:44311
    Referer:https://localhost:44311/HTMLClient/default.htm?SPHostUrl=http://dvsp13/sites/dev&SPLanguage=en-US&SPClientTag=0&SPProductNumber=15.0.4420.1017&SPAppWebUrl=http://app-3a30cc1a7d92b4.apps.ad.hd.hastdeer.com.au/sites/dev/TestApp2&SPChromeColors=FF0072C6FFFFFFFF
    User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36
    Request Payload
    --batch_2a2e-5393-8906
    Content-Type: multipart/mixed; boundary=changeset_32c2-47ba-a379
    
    --changeset_32c2-47ba-a379
    Content-Type: application/http
    Content-Transfer-Encoding: binary
    
    POST Recipes HTTP/1.1
    Content-ID: 0
    DataServiceVersion: 3.0
    Accept: application/atomsvc+xml;q=0.8, application/json;odata=fullmetadata;q=0.7, application/json;q=0.5, */*;q=0.1
    Content-Type: application/json;odata=verbose
    MaxDataServiceVersion: 3.0
    
    {"Name":"asdasd","Ingridients":"asdasdad","Instruction":"asdasd"}
    --changeset_32c2-47ba-a379--
    
    --batch_2a2e-5393-8906--
    Response Headersview source
    Cache-Control:no-cache
    Content-Length:3669
    Content-Type:multipart/mixed; boundary=batchresponse_8ad73fca-53e1-4ce6-ada8-dc0a4c58f676
    DataServiceVersion:1.0;
    Date:Fri, 20 Sep 2013 00:37:39 GMT
    Persistent-Auth:true
    Server:Microsoft-IIS/8.0
    X-AspNet-Version:4.0.30319
    X-Content-Type-Options:nosniff
    X-Powered-By:ASP.NET
    X-SourceFiles:=?UTF-8?B?YzpcVXNlcnNcbmlja3Nhdi5IREFMXERvY3VtZW50c1xWaXN1YWwgU3R1ZGlvIDIwMTNcUHJvamVjdHNcVGVzdEFwcDJcVGVzdEFwcDJcYmluXERlYnVnXEFwcGxpY2F0aW9uRGF0YS5zdmNcJGJhdGNo?=

    And here is the response:

    --batchresponse_8ad73fca-53e1-4ce6-ada8-dc0a4c58f676
    Content-Type: multipart/mixed; boundary=changesetresponse_7d91263c-a1c1-4a04-bb70-e035ccb1d2f4
    
    --changesetresponse_7d91263c-a1c1-4a04-bb70-e035ccb1d2f4
    Content-Type: application/http
    Content-Transfer-Encoding: binary
    
    HTTP/1.1 500 Internal Server Error
    Content-ID: 0
    X-Content-Type-Options: nosniff
    Cache-Control: no-cache
    DataServiceVersion: 3.0;
    Content-Type: application/json;odata=fullmetadata;streaming=true;charset=utf-8
    
    {"odata.error":{"code":"1","message":{"lang":"en-AU","value":"<?xml version=\"1.0\" encoding=\"utf-16\"?><ExceptionInfo><Message>Value cannot be null.\r\nParameter name: webFullUrl</Message><StackTrace>   at Microsoft.SharePoint.Client.ClientRuntimeContext..ctor(String webFullUrl)\r\n   at Microsoft.SharePoint.Client.ClientContext..ctor(Uri webFullUrl)\r\n   at Microsoft.LightSwitch.Framework.Server.SharePointHost.GetClientContext(Uri url, Boolean useApplicationToken)\r\n   at Microsoft.LightSwitch.Framework.Server.SharePointHost.GetHostWebClientContext()\r\n   at Microsoft.LightSwitch.Framework.Server.O365PersonData.Initialize(String personId)\r\n   at Microsoft.LightSwitch.Framework.Server.UserData..ctor()\r\n   at Microsoft.LightSwitch.Framework.Server.O365PersonData..ctor()\r\n   at Microsoft.LightSwitch.Framework.Server.SharePointApplication`3.GetCurrentSharePointUserData(UserData&amp; spUserData)\r\n   at Microsoft.LightSwitch.Framework.Server.ServerApplication`2.Microsoft.LightSwitch.Framework.Server.IServerApplicationCore.GetCurrentSharePointUserData(UserData&amp; spUserData)\r\n   at Microsoft.LightSwitch.Utilities.Server.Internal.SecurityHelper.EnsureSharePointUserData()\r\n   at Microsoft.LightSwitch.Security.ServerGenerated.Implementation.SecurityDataProvider.GetFullName(String userName, String&amp; humanReadableUserName)\r\n   at Microsoft.LightSwitch.Runtime.ServerDesignComponents.Implementation.UserProvider.GetUser(AuthenticationType authenticationType)\r\n   at Microsoft.LightSwitch.Security.ServerGenerated.Implementation.SecurityDataProvider.TryGetUserFromUserProvider(User&amp; user)\r\n   at Microsoft.LightSwitch.Security.ServerGenerated.Implementation.SecurityDataProvider.GetPersonCreationParameters(IPrincipal principal)\r\n   at Microsoft.LightSwitch.Security.ServerGenerated.Implementation.SecurityDataProvider.CreateUser(IPrincipal principal)\r\n   at Microsoft.LightSwitch.Security.ServerGenerated.Implementation.SecurityInfo.CreateUser(IPrincipal principal)\r\n   at Microsoft.LightSwitch.Utilities.Server.Internal.SecurityHelper.ConvertPrincipal(IPrincipal principal)\r\n   at Microsoft.LightSwitch.Framework.Server.ServerApplication`2.get_User()\r\n   at Microsoft.LightSwitch.ServerGenerated.Implementation.DataServiceImplementation`1.GetChangeStamp(DateTimeOffset&amp; timeStamp, String&amp; userName)\r\n   at Microsoft.LightSwitch.ServerGenerated.Implementation.DataServiceImplementation`1.Microsoft.LightSwitch.ServerGenerated.Implementation.IServerDataServiceImplementationCore.Submit()\r\n   at Microsoft.LightSwitch.ServerGenerated.Implementation.DataService`1.&lt;&gt;c__DisplayClasse.&lt;Microsoft.LightSwitch.ServerGenerated.Implementation.IODataService.SaveChanges&gt;b__c()\r\n   at Microsoft.LightSwitch.ServerGenerated.Implementation.DataServiceImplementation`1.InvokeOperationCore[T](String operationName, Object[] args, Boolean invokedFromODataClient, Func`1 invokeOperation, Action catchCallback, Action`2 serializeCustomExceptionInfo)</StackTrace><ErrorInfo /></ExceptionInfo>"}}}
    --changesetresponse_7d91263c-a1c1-4a04-bb70-e035ccb1d2f4--
    --batchresponse_8ad73fca-53e1-4ce6-ada8-dc0a4c58f676--
    

    Thanks 

    Friday, September 20, 2013 12:42 AM
  • Nick,

    Were you able to get this issue resolved? I am running into the same issues. Receiving an IssuerIsNotTrusted Error when Viewing a SharePointDatasource list after I Enabled SharePoint for my LightSwitch Project.

    Monday, October 7, 2013 9:13 PM
  • Not really.

    I have created couple threads about that issue and they all are unanswered. 

    Monday, October 7, 2013 11:20 PM
  • As this was the first post I found, when trying to figure out a similar issue, it seems that adding a comment here, on how I figured out what was going wrong, would be helpful to others, and saving them from the frustration I suffered.

    The first step to take is to enable tracing in the LightSwitch web.config:

    <add key="Microsoft.LightSwitch.Trace.Enabled" value="true" />

    Then, from SharePoint navigate to the LightSwitch app to get the 401 error.

    Replace everything from SharePointLaunch.aspx with trace.axd to get the trace information.

    View the details of the last item. This will get you information about the issue.

    In my case, I got the following:

    DateTime values that are greater than DateTime.MaxValue or smaller than DateTime.MinValue when converted to UTC cannot be serialized to JSON.

    Using this I found a post about this error:

    http://social.msdn.microsoft.com/Forums/sharepoint/en-US/4f59f1ec-b97e-43e7-a83a-4bdea726700e/lightswitch-sharepoint-app-error-datetime-values-that-are-greater-than-datetimemaxvalue-or?forum=appsforsharepoint

    Following the there mentioned post, I then changed the timezone (server level) and did an iisreset, that 'fixed' it for me.

    I hope this is useful to someone...

    Saturday, March 1, 2014 9:49 AM