<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="www.w3.org/2005/Atom" xmlns:sy="purl.org/rss/1.0/modules/syndication/" xmlns:dc="purl.org/dc/elements/1.1/" xmlns:content="purl.org/rss/1.0/modules/content/" xmlns:wfw="wellformedweb.org/CommentAPI/" xmlns:slash="purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Do What?</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/duetsupport/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/duetsupport/feed.xml</link>
    <description>Duet Support Team Blog</description>
    <lastBuildDate>Tue, 16 Apr 2019 05:05:52 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>"Property 'SAP__Origin' is invalid"</title>
      <link>https://docs.microsoft.com/archive/blogs/duetsupport/property-sap__origin-is-invalid</link>
      <pubDate>Mon, 10 Feb 2014 14:39:20 GMT</pubDate>
      <dc:creator><![CDATA[waltwa]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/duetsupport/2014/02/10/property-sap__origin-is-invalid/</guid>
      <description><![CDATA[Symptoms:  After using DuetConfig.exe with the -ImportBdc command to import models into SharePoint,...]]></description>
      <content:encoded><![CDATA[<p><strong>Symptoms</strong>:</p>  <p>After using DuetConfig.exe with the -ImportBdc command to import models into SharePoint, you may see the following error in the SAP logs when trying to use Duet Enterprise functionality:</p>  <p><font color="#ff0000"><strong>&quot;Property 'SAP__Origin' is invalid&quot;</strong></font></p>  <p><strong>Cause</strong>:</p>  <p>The LsiUrl value used when importing the model into SharePoint was not correct. The LsiUrl was missing the required multi-origin ( ;mo ) identifier which routes the request to the SAP service that expects the 'SAP__Origin' property that is being sent with the Duet Enterprise request from SharePoint.</p>  <p><strong>Resolution</strong>:</p>  <p>Remove and re-import the models using the correct LsiUrl syntax as documented in &quot;Table 2&quot; of the <a href="service.sap.com/~form/sapnet?_SHORTKEY=01100035870000758687&amp;_SCENARIO=01100035870000000202&amp;">Duet Enterprise 2.0 SAP Configuration Guide</a>: </p>  <p>For example, here are the URLs for Workflow:</p>  <p>LSI URL for Workflow:</p>  <p>https://&lt;host&gt;:&lt;port&gt;/sap/opu/odata/IWWRK/DUET_WORKFLOW_CORE;mo;c=SHAREPOINT_DE/</p>  <p>LSI URL for Subscription:</p>  <p>https://&lt;host&gt;:&lt;port&gt;/sap/opu/odata/IWBEP/SUBSCRIPTIONMANAGEMENT;mo;v=2;c=SHAREPOINT_DE/</p>  <p>Here is an example of a correct ImportBbc command for Workflow:</p>  <p>DuetConfig.exe -ImportBdc -FeatureName Workflow -LsiUrl https://SAPGATEWAY.domain.com:8001/sap/opu/odata/IWWRK/DUET_WORKFLOW_CORE;mo;c=SHAREPOINT_DE -BdcServiceApplication &quot;Business Data Connectivity Service&quot; -UserSubLsiUrl https://SAPGATEWAY.domain.com:8001/sap/opu/odata/IWBEP/SUBSCRIPTIONMANAGEMENT;v=2;mo;c=SHAREPOINT_DE</p>]]></content:encoded>
    </item>
    <item>
      <title>"The user does not exist or is not unique."</title>
      <link>https://docs.microsoft.com/archive/blogs/duetsupport/the-user-does-not-exist-or-is-not-unique</link>
      <pubDate>Tue, 09 Oct 2012 08:45:44 GMT</pubDate>
      <dc:creator><![CDATA[waltwa]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/duetsupport/2012/10/09/the-user-does-not-exist-or-is-not-unique/</guid>
      <description><![CDATA[When trying to grant permissions in SharePoint using an SAP Role that has been synced using Duet...]]></description>
      <content:encoded><![CDATA[<p>When trying to grant permissions in SharePoint using an SAP Role that has been synced using Duet Enterprise, you may get the following error:</p>  <p><font color="#ff0000"><strong>&quot;The user does not exist or is not unique.&quot;</strong></font></p>  <p>In the ULS logs you may see one or both of these entries:</p>  <p>1. &quot;<font color="#ff0000">ServiceContext for the &lt;sharepointserver:port&gt;/ context is null</font>&quot;</p>  <p>&#160;&#160;&#160;&#160; Where <strong>sharepointserver</strong> and <strong>port</strong> are replaced with values from your environment.</p>  <p>&#160;&#160;&#160;&#160; For example:    <br />&#160;&#160;&#160;&#160; &quot;ServiceContext for the https://litware.litware.com:9000/ context is null&quot;</p>  <p>&#160;</p>  <p> 2. System.Runtime.InteropServices.COMException: <font color="#ff0000">The user does not exist or is not unique.</font>&#160;&#160; <br />&#160;&#160;&#160;&#160; at Microsoft.SharePoint.Library.SPRequestInternalClass.UpdateMembers(String bstrUrl, …&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160; at Microsoft.SharePoint.Library.SPRequest.UpdateMembers(String bstrUrl, … </p>  <p>&#160;</p>  <p><strong>Cause</strong>:</p>  <p>The Duet Claims Provider, like most SharePoint functionality, requires a root site collection. The error &quot;<font color="#ff0000">ServiceContext for the </font>sharepointserver:port/ <font color="#ff0000">context is null</font>&quot; means that a root site collection could not be found. </p>  <p>For more information about limitations and supportability when no root site collection exists for your SharePoint Web Application, see the following articles:</p>  <p><a href="https://support.microsoft.com/kb/2590564" target="_blank">SharePoint 2010: Supportability of unprovisioned root site in a SharePoint web application</a></p>  <p><a href="https://support.microsoft.com/kb/2625462" target="_blank">SharePoint: Office client integration errors when no root site exists</a></p>  <p><a href="https://support.microsoft.com/kb/2012229" target="_blank">Error message when you try to access a UNC Path of a Windows SharePoint Services 3.0 or in SharePoint Server 2007 if no site collection is mapped to the root of the web application: &quot;The network path was not found&quot;</a></p>  <p>&#160;</p>  <p><strong>Resolution</strong>:</p>  <p>You can confirm if a root site collection exists by navigating to the sharepointserver:port/ site in a browser and then see if a SharePoint site is displayed.&#160; If there is no site at that URL, then you will need to create a SharePoint site collection at sharepointserver:port/ to resolve this issue. The site template used to create the root site is not important and it can be a blank site.</p>]]></content:encoded>
    </item>
    <item>
      <title>No mapping for SAML authentication found</title>
      <link>https://docs.microsoft.com/archive/blogs/duetsupport/no-mapping-for-saml-authentication-found</link>
      <pubDate>Fri, 18 May 2012 15:03:16 GMT</pubDate>
      <dc:creator><![CDATA[waltwa]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/duetsupport/2012/05/18/no-mapping-for-saml-authentication-found/</guid>
      <description><![CDATA[I just assisted a customer that was getting the following error in their ULS logs when trying to...]]></description>
      <content:encoded><![CDATA[<p>I just assisted a customer that was getting the following error in their ULS logs when trying to crawl a Duet BCS content source:</p>  <p><font color="#ff0000">Error while crawling LOB contents. ( CX_WS_SECURITY_FAULT:An exception occurred: No mapping for SAML authentication found (Issuer SharePoint) )</font></p>  <p>We logged on to SharePoint as the service account being used to do the crawl and tried to display a list based on the Duet External Content Type and the same basic error was displayed:</p>  <p><font color="#ff0000">CX_WS_SECURITY_FAULT:An exception occurred: No mapping for SAML authentication found (Issuer SharePoint)</font></p>  <p>When logged on to SharePoint as a different user the list displayed correctly, so our problem seemed to be user-specific. Based on my experience this typically means that there is a problem with the user mapping table (VUSREXTID) in SAP.</p>  <p>To troubleshoot this we started by turning on a <a href="https://blogs.msdn.com/b/duetsupport/archive/2012/05/08/using-srtutil-and-payload-tracing-to-troubleshoot-duet-enterprise.aspx" target="_blank">Payload Trace</a> on the SAP Duet server so we could see the requests coming in from SharePoint and could see the SAML <strong>Issuer</strong> and <strong>NameIdentifier</strong> being used.&#160; This information is in the first entry (Request Step:1) in the payload data.&#160; You can click the <strong>Original XML</strong> button to see it as XML.&#160; Here is an example of what this should look like:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/2867.image_3CA3B91B.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/2867.image_5F00_3CA3B91B.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/3441.image_thumb_42EA8FA9.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/3441.image_5F00_thumb_5F00_42EA8FA9.png" width="445" height="171" /></a></p>  <p>&#160;</p>  <p>Next we looked at the entries in the VUSREXTID table in SAP to verify that we had a mapping for this user. To do this you can run transaction <strong>SM30</strong> and enter <strong>VUSREXTID</strong> as the <strong>Table/View</strong> name.&#160; In the <strong>External ID type</strong> dialog that appears enter <strong>SA</strong>&#160; (for SAML NameIdentifier) and press enter.</p>  <p>We could see the correct entry in our list but we noticed that the case did not match. The VUSERXTID table is case sensitive, so we created the correct entry by using <strong>Copy As…</strong> to create a copy of the original and change the case to match the value seen in the SAML data in the payload trace. <strong>NOTE</strong>:&#160; Creating N<strong>ew Entries</strong> directly in the VUSREXTID table is not supported because it bypasses some SAP logic that needs to be applied to the entries.&#160; But you can use <strong>Copy As…</strong> to create entries based off of a working entry.&#160; </p>  <p>With the case fixed, we re-tested but got the same error.</p>  <p>We realized that what had happened was that someone had added the entry to the VUSREXTID table directly without using <strong>Copy As…</strong> (which is not supported). The current entry and the copy we made from it were both invalid.&#160; So, we removed them and used <strong>Copy As…</strong> to create a new entry based on an entry that we knew worked. We also could have used the implementation guide (transaction <strong>SIMGH</strong>) to execute the <a href="scn.sap.com/community/duet-enterprise/blog/2011/04/06/user-mapping-in-duet-enterprise-10" target="_blank">proper role mapping steps</a>.&#160;&#160; The problem was resolved and the account could now be successfully mapped to the SAP user.</p>]]></content:encoded>
    </item>
    <item>
      <title>Using SRTUTIL and Payload Tracing to troubleshoot Duet Enterprise</title>
      <link>https://docs.microsoft.com/archive/blogs/duetsupport/using-srtutil-and-payload-tracing-to-troubleshoot-duet-enterprise</link>
      <pubDate>Tue, 08 May 2012 13:45:29 GMT</pubDate>
      <dc:creator><![CDATA[waltwa]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/duetsupport/2012/05/08/using-srtutil-and-payload-tracing-to-troubleshoot-duet-enterprise/</guid>
      <description><![CDATA[SRTUTIL has become my favorite tool for determining if a Duet Enterprise call from SharePoint made...]]></description>
      <content:encoded><![CDATA[<p>SRTUTIL has become my favorite tool for determining if a Duet Enterprise call from SharePoint made it to SAP.&#160; If you are using Duet Enterprise and you get an error in SharePoint or the SharePoint ULS logs it isn't always clear if the error happened in SharePoint or if the error was returned from SAP.&#160; My first step now is to enable a Payload Trace in SAP and then reproduce the issue and see what gets logged.</p>  <p>Here are the steps to enable a Payload trace (you can also enable Functional and Performance traces at the same time if you wish)</p>  <p>1. Use SAPGUI to logon to the SAP NetWeaver system.</p>  <p>2. Run transaction <strong>SRTUTIL</strong> (or SRT_UTIL)</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/3582.image_34D580BF.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/3582.image_5F00_34D580BF.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/7384.image_thumb_32B881F6.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/7384.image_5F00_thumb_5F00_32B881F6.png" width="565" height="336" /></a></p>  <p>3. Right-click on &quot;<strong>Users &amp; Terminals &amp; Request URI</strong>&quot; and then click on &quot;<strong>Add User, Terminal or Request URI</strong>&quot;.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/4336.image_5C6BD71C.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/4336.image_5F00_5C6BD71C.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/5722.image_thumb_7FB8CBC1.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/5722.image_5F00_thumb_5F00_7FB8CBC1.png" width="565" height="334" /></a></p>  <p>4. Choose the &quot;<strong>Request URI</strong>&quot; option and leave the default path &quot;/sap/bc/srt/&quot; and click the green check mark button.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/6712.image_2C61859B.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/6712.image_5F00_2C61859B.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/5734.image_thumb_2B891FB1.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/5734.image_5F00_thumb_5F00_2B891FB1.png" width="571" height="340" /></a></p>  <p>5. On the &quot;<strong>Configuration</strong>&quot; tab select &quot;<strong>Active</strong>&quot; in the &quot;<strong>Payload Trace</strong>&quot; dropdown and then click the &quot;<strong>Save Configuration</strong>&quot; button lower on the page.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/8865.image_3C211A9F.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/8865.image_5F00_3C211A9F.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/0066.image_thumb_41FBBE38.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/0066.image_5F00_thumb_5F00_41FBBE38.png" width="590" height="425" /></a></p>  <p>6. Switch to the &quot;<strong>Payload Trace</strong>&quot; tab and reproduce the issue (or just display a working Duet Enterprise list) to see the request and response data between SharePoint and SAP.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/3681.image_07341562.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/3681.image_5F00_07341562.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/1121.image_thumb_4CD89F80.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/1121.image_5F00_thumb_5F00_4CD89F80.png" width="587" height="349" /></a></p>  <p>NOTE: In the image above I added the &quot;Operation Name&quot; column to make the list easier to read.</p>  <p>7. Double-click on an entry to see more details. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/4760.image_1210F6AA.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/4760.image_5F00_1210F6AA.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/3122.image_thumb_1EDB26FB.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/3122.image_5F00_thumb_5F00_1EDB26FB.png" width="590" height="424" /></a></p>  <p>8. In the Type column click on <strong>Request</strong> or <strong>Response</strong> to see the details of each step. NOTE: There should be Request and Response for each Step # in the &quot;<strong>Step</strong>&quot; column.</p>  <p>9. Click the &quot;<strong>Original XML</strong>&quot;&#160; button to view the Request or Response as XML:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/3034.image_2A243B38.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/3034.image_5F00_2A243B38.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/3531.image_thumb_2B58AE4A.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/3531.image_5F00_thumb_5F00_2B58AE4A.png" width="593" height="453" /></a></p>]]></content:encoded>
    </item>
    <item>
      <title>Duet Enterprise : Finder method call failed. Connection manager did not return valid connection. (Rolesync not working in a federated farm)</title>
      <link>https://docs.microsoft.com/archive/blogs/duetsupport/duet-enterprise-finder-method-call-failed-connection-manager-did-not-return-valid-connection-rolesync-not-working-in-a-federated-farm</link>
      <pubDate>Thu, 26 Apr 2012 06:04:23 GMT</pubDate>
      <dc:creator><![CDATA[JeffGa]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/duetsupport/2012/04/26/duet-enterprise-finder-method-call-failed-connection-manager-did-not-return-valid-connection-rolesync-not-working-in-a-federated-farm/</guid>
      <description><![CDATA[&#160;  Problem:  We recently encountered an interesting problem with a configuration of a...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p><strong>Problem:</strong></p>  <p>We recently encountered an interesting problem with a configuration of a SharePoint 2010 farm where the profile sync farm is not the same as the services farm. In the services farm, the BCS models connect to SAP.&#160; In the profile sync farm, the imports occur. The STS's are not the same therefore, the SAP endpoint has to be configured with basic auth. The basic authentication&#160; approach with the STS to SAP fails.</p>  <p>You might see the following error logged in the ULS logs:</p>  <p>OWSTIMER.EXE (0x0A5C) 0x0914 Duet Enterprise ProfileSync h31g Unexpected Finder method call failed.. The exception message is 'Connection manager did not return valid connection. (Proxy creation failed. Default context not found.) Stack Trace: at Microsoft.SharePoint.BusinessData.SystemSpecific.Wcf.WcfSystemUtility.ExecuteStatic(IMethodInstance methodInstance, ILobSystemInstance lobSystemInstance, Object[] args, IExecutionContext context) at Microsoft.SharePoint.BusinessData.Runtime.DataClassRuntime.ExecuteInternalWithAuthNFailureRetry(ISystemUtility systemUtility, IMethodInstance methodInstanceToExecute, IMethod methodToExecute, ILobSystemInstance lobSystemInstance, ILobSystem lobSystem, IParameterCollection nonReturnParameters, Object[] overrideArgs) at Microsoft.SharePoint.BusinessData.Runtime.DataClassRuntime.ExecuteInternal(IDataClass thisDataClass, ILobSystemInstance lobSystemInstance, ILobSystem lobSystem, IMethodInstance methodInstanceToExecute, IMethod methodToExecute, IParameterCollection nonReturnParameters, Object[]&amp; overrideArgs) at Microsoft.SharePoint.BusinessData.Runtime.EntityRuntime.ExecuteInternal(IDataClass thisDataClass, ILobSystemInstance lobSystemInstance, ILobSystem lobSystem, IMethodInstance methodInstanceToExecute, IMethod methodToExecute, IParameterCollection nonReturnParameters, Object[]&amp; overrideArgs, IFilterCollection filters) at Microsoft.SharePoint.BusinessData.Runtime.EntityRuntime.ExecuteFiltered(IEntity this, IFilterCollection filterCollection, IMethodInstance methodInstanceToExecute, ILobSystemInstance lobSystemInstance) at Microsoft.SharePoint.BusinessData.Runtime.EntityRuntime.&lt;FindFiltered&gt;b__3(IEntity e, IMethodInstance mi, IFilterCollection fc, ILobSystemInstance lsi) at Microsoft.SharePoint.BusinessData.Runtime.BatchableEntityInstanceEnumerator..ctor(IEntity entity, IMethodInstance methodInstance, IFilterCollection filters, ILobSystemInstance lobSystemInstance, ExecutionCallBack executionCallBack, Boolean isBatchingEnabled) at Microsoft.SharePoint.BusinessData.Runtime.EntityInstanceEnumeratorFactory.CreateEntityInstanceEnumerator(IEntity entity, IMethodInstance methodInstance, IFilterCollection filters, ILobSystemInstance lobSystemInstance, ExecutionCallBack executionCallBack) at Microsoft.SharePoint.BusinessData.MetadataModel.Static.Entity.FindFiltered(IFilterCollection filterCollection, ILobSystemInstance lobSystemInstance) at OBA.Server.ProfileSync.RoleSync.GetUsersPropertiesFromBackend() </p>  <p><strong>Cause:</strong></p>  <p>The service context is not being properly called when using the BCS Finder methods.</p>  <p><strong>Resolution:</strong></p>  <p>The following update will address this issue along with some additional configuration steps that are noted below:</p>  <p>Duet Enterprise for Microsoft SharePoint and SAP hotfix package 2597130 – <a title="support.microsoft.com/kb/2597130" href="https://support.microsoft.com/kb/2597130">support.microsoft.com/kb/2597130</a> , contains the fix that resolves this issue.&#160; In addition to applying the fix the following steps need to be performed to resolve the issue:</p>  <p align="left">1.) Reset the SharePoint Timer Job on all servers in the farm    <br />2.) Modify the UserRoles BDC Model that’s exported from the SAP/SCL layer.&#160; The UserRoles model must be altered with the following highlighted changes:</p>  <p align="left">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;Property Name=&quot;WcfAuthenticationMode&quot; Type=&quot;System.String&quot;&gt;<font style="background-color: #ffff00">Credentials</font>&lt;/Property&gt;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font style="background-color: #ffff00">&lt;Property Name=&quot;SsoApplicationId&quot; Type=&quot;System.String&quot;&gt;WSDL&lt;/Property&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;Property Name=&quot;SsoProviderImplementation&quot; Type=&quot;System.String&quot;&gt;Microsoft.Office.SecureStoreService.Server.SecureStoreProvider, Microsoft.Office.SecureStoreService, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&lt;/Property&gt;       <br /></font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;Property Name=&quot;UseStsIdentityFederation&quot; Type=&quot;System.Boolean&quot;&gt;<font style="background-color: #ffff00">false</font>&lt;/Property&gt;     <br /></p>  <p>3.) Import the manually modified model to the BDC on the Services Farm.</p>]]></content:encoded>
    </item>
    <item>
      <title>System.Security.Cryptography.CryptographicException: The system cannot find the file specified.</title>
      <link>https://docs.microsoft.com/archive/blogs/duetsupport/system-security-cryptography-cryptographicexception-the-system-cannot-find-the-file-specified</link>
      <pubDate>Fri, 06 Apr 2012 13:44:59 GMT</pubDate>
      <dc:creator><![CDATA[waltwa]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/duetsupport/2012/04/06/system-security-cryptography-cryptographicexception-the-system-cannot-find-the-file-specified/</guid>
      <description><![CDATA[I was recently assisting with a SharePoint 2010 BCS / WCF issue where we wanted the BCS logic to run...]]></description>
      <content:encoded><![CDATA[<p>I was recently assisting with a SharePoint 2010 BCS / WCF issue where we wanted the BCS logic to run as the Application Pool Identity. Everything worked fine if they had the External Content Type (ECT) configured to use claims based authentication and the user’s identity. But once they opened the ECT in SharePoint Designer, opened the External System, and unchecked the box to &quot;Use claims based authentication&quot; in the &quot;Connection Properties&quot; for their production server they would then get the error below in the ULS logs each time they tried to access their External List in SharePoint. The same change worked fine for them on two other test systems.</p>  <p>03/16/2012 11:01:57.50&#160;&#160;&#160; w3wp.exe (0x1548)&#160;&#160;&#160; 0x1858&#160;&#160;&#160; Business Connectivity Services&#160;&#160;&#160; Business Data&#160;&#160;&#160; f6pq&#160;&#160;&#160; Unexpected </p>  <p>CommunicationException exception executing : System.ServiceModel.Security.SecurityNegotiationException: SOAP security negotiation failed. See inner exception for more details. ---&gt; <strong>System.Security.Cryptography.CryptographicException</strong>: <font color="#ff0000"><strong>The system cannot find the file specified</strong></font>.&#160;&#160;&#160;&#160;&#160; <br />at System.Security.Cryptography.Utils.<strong>CreateProvHandle</strong>(CspParameters parameters, Boolean randomKeyContainer)&#160;&#160;&#160; <br />at System.Security.Cryptography.Utils.GetKeyPairHelper(CspAlgorithmType keyType, CspParameters parameters, Boolean randomKeyContainer, Int32 dwKeySize, SafeProvHandle&amp; safeProvHandle, SafeKeyHandle&amp; safeKeyHandle)&#160;&#160;&#160; <br />at System.Security.Cryptography.RSACryptoServiceProvider.GetKeyPair()&#160;&#160;&#160; <br />at System.IdentityModel.Tokens.RsaSecurityToken..ctor(RSACryptoServiceProvider rsa, Boolean ownsRsa)&#160;&#160;&#160; <br />at System.IdentityModel.Tokens.RsaSecurityToken.CreateSafeRsaSecurityToken(Int32 keySize)&#160;&#160;&#160; <br />at System.ServiceModel.Security.Tokens.IssuedSecurityTokenProvider.CoreFederatedTokenProvider.CreateAndCacheRsaSecurityToken()&#160;&#160;&#160; <br />at System.ServiceModel.Security.Tokens.IssuedSecurityTokenProvider.CoreFederatedTokenProvider.CreateNegotiationState(EndpointAddress target, Uri via, TimeSpan timeout)&#160;&#160;&#160; <br />at System.ServiceModel.Security.IssuanceTokenProviderBase`1.DoNegotiation(TimeSpan timeout)&#160;&#160;&#160;&#160; -     <br />-- End of inner exception stack trace ---&#160;&#160;&#160; Server stack trace:&#160;&#160;&#160;&#160; <br />at System.ServiceModel.Security.IssuanceTokenProviderBase`1.DoNegotiation(TimeSpan timeout)&#160;&#160;&#160; <br />at System.ServiceModel.Security.IssuanceTokenProviderBase`1.GetTokenCore(TimeSpan timeout)&#160;&#160;&#160; <br />at System.IdentityModel.Selectors.SecurityTokenProvider.GetToken(TimeSpan timeout)&#160;&#160;&#160; <br />at System.ServiceModel.Security.Tokens.IssuedSecurityTokenProvider.GetTokenCore(TimeSpan timeout)&#160;&#160;&#160; <br />at System.IdentityModel.Selectors.SecurityTokenProvider.GetToken(TimeSpan timeout)&#160;&#160;&#160; <br />at System.ServiceModel.Security.SecurityProtocol.TryGetSupportingTokens(SecurityProtocolFactory factory, EndpointAddress target, Uri via, Message message, TimeSpan timeout, Boolean isBlockingCall, IList`1&amp; supportingTokens)&#160;&#160;&#160; <br />at System.ServiceModel.Security.TransportSecurityProtocol.SecureOutgoingMessageAtInitiator(Message&amp; message, String actor, TimeSpan timeout)&#160;&#160;&#160; <br />at System.ServiceModel.Security.TransportSecurityProtocol.SecureOutgoingMessage(Message&amp; message, TimeSpan timeout)&#160;&#160;&#160; <br />at System.ServiceModel.Security.SecurityProtocol.SecureOutgoingMessage(Message&amp; message, TimeSpan timeout, SecurityProtocolCorrelationState correlationState)&#160;&#160;&#160; <br />at System.ServiceModel.Channels.SecurityChannelFactory`1.SecurityRequestChannel.Request(Message message, TimeSpan timeout)&#160;&#160;&#160; <br />at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)&#160;&#160;&#160; <br />at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)&#160;&#160;&#160; <br />at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)&#160;&#160;&#160; <br />at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)&#160;&#160;&#160; Exception rethrown     <br />at [0]:&#160;&#160;&#160;&#160; <br />at Microsoft.SharePoint.BusinessData.SystemSpecific.Wcf.WcfSystemUtility.Execute(Object[] args)</p>  <p>&#160;</p>  <p>I did some debugging and found that a call to lookup the user storage location was setting the error: &quot;The system cannot find the file specified&quot; as a result of not being able to open the profile registry keys for the user.&#160; The code made 3 attempts looking for these 3 keys:</p>  <ol>   <li>HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-17 </li>    <li>HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-17.bak </li>    <li>HKCU\S-1-5-17 </li> </ol>  <p>NOTE: S-1-5-17 is the SID for the NT AUTHORITY\IUSR account.</p>  <p>I had already collected a <a href="https://technet.microsoft.com/en-us/sysinternals/bb896645" target="_blank">Process Monitor</a> log so I used it to easily see the 3 registry requests resulting in NAME NOT FOUND:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/8461.image_33BF0BEB.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/8461.image_5F00_33BF0BEB.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/7725.image_thumb_1D3C4797.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/7725.image_5F00_thumb_5F00_1D3C4797.png" width="1126" height="285" /></a></p>  <p>NOTE: Creating a filter in Process Monitor where &quot;Path contains \Windows NT\CurrentVersion\P&quot; will allow you to easily find this.</p>  <p>&#160;</p>  <p>In the working test environments we were looking for and successfully finding the ProfileList registry key for the SID of the user configured as the AppPool identity.</p>  <p>For example:</p>  <blockquote>   <p>HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21-123456789-123456789-123456789-123456</p> </blockquote>  <p>We would then use information from the registry to build a path to the RSA directory for the user:</p>  <blockquote>   <p>&quot;C:\Users\&lt;AppPoolUserID&gt;\AppData\Roaming\Microsoft\Crypto\RSA\S-1-5-21-123456789-123456789-123456789-123456\&quot;</p> </blockquote>  <p>&#160;</p>  <p>So, the issue here was that on the production server we were not actually running as the AppPool Identity, we were running as the IUSR account and there is no Windows profile that exists for the IUSR account.&#160; This brings up the next key question which is why is one server running as IUSR while the other working one is running as the Application Pool Identity? </p>  <p>The answer to this lies in a hotfix/update that is applied on the production server that isn't on the test servers.</p>  <p>----------------------------------------------------------------------------------------------------------------</p>  <p><a href="https://support.microsoft.com/kb/2686411" target="_blank">SharePoint impersonates the IUSR account and is denied access to resources</a> states:</p>  <p>This hotfix makes a new application setting available in ASP.NET 2.0. The new application setting is aspnet:AllowAnonymousImpersonation. You can enable this setting by adding the following section to the Web.config file: </p>  <p>&#160;&#160;&#160; &lt;appSettings&gt;</p>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;add key=&quot;aspnet:AllowAnonymousImpersonation&quot; value=&quot;true&quot; /&gt;</p>  <p>&#160;&#160;&#160; &lt;/appSettings&gt;</p>  <p>To enable this setting, you must have IIS 7 or IIS 7.5 running in Integrated mode. <strong>When this setting is enabled, the application runs under the security context of the IUSR identity</strong>.</p>  <p>----------------------------------------------------------------------------------------------------------------</p>  <p><a href="https://support.microsoft.com/kb/979917" target="_blank">Article 979917</a> shows that the new setting of running as IUSR was introduced in System.web.dll version 2.0.50727.5007</p>  <p>Our working test servers had an older build and our failing production server had a newer build.</p>  <p>By setting the value to &quot;false&quot; SharePoint will use the older less restrictive security setting that allows the code to run as the AppPool identity.&#160; </p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint permissions based on SAP Roles may not be honored</title>
      <link>https://docs.microsoft.com/archive/blogs/duetsupport/sharepoint-permissions-based-on-sap-roles-may-not-be-honored</link>
      <pubDate>Thu, 09 Feb 2012 13:51:27 GMT</pubDate>
      <dc:creator><![CDATA[waltwa]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/duetsupport/2012/02/09/sharepoint-permissions-based-on-sap-roles-may-not-be-honored/</guid>
      <description><![CDATA[Issue:  I just worked with a customer that had Duet Enterprise configured and they were setting...]]></description>
      <content:encoded><![CDATA[<p><strong>Issue:</strong></p>  <p>I just worked with a customer that had Duet Enterprise configured and they were setting permissions in SharePoint based on their SAP Roles as described in <a href="https://technet.microsoft.com/en-us/library/ff972419.aspx#roles" target="_blank">Using SAP roles to access SharePoint objects</a> . Everything looked good, but users with the SAP Roles defined were not able to access the SharePoint sites that were permissioned with the SAP Roles.</p>  <p>The first thing we did was confirm that the SAP Roles were actually on the user profiles.&#160; To do this we went to <strong>Central Administration</strong> selected <strong>Manage Service Applications</strong> and then clicked on our <strong>User Profile Service Application</strong>. Under <strong>People</strong> we chose <strong>Manage User Profiles</strong> and then searched for one of our users. Once found we selected the user and chose <strong>Edit My Profile</strong> and we could see in the list that the <strong>SAP Roles</strong> property existed and that it was populated as expected:</p>  <p>&#160;</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/4666.image_2DFBF7B2.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/4666.image_5F00_2DFBF7B2.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/3580.image_thumb_2D2391C8.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/3580.image_5F00_thumb_5F00_2D2391C8.png" width="952" height="71" /></a></p>  <p>&#160;</p>  <p>The next step was to verify that the user's Claims token on SharePoint actually contained the Roles. I didn't find a simple way to do this so I used the Windows Debugger (windbg.exe) to dump out the Claims and could see that the SAP Roles were <strong>not</strong> included.&#160; Instead of using windbg you could create a simple web part to dump out claims based on the <a href="https://code.msdn.microsoft.com/SharePoint-2010-Learning-55b38737" target="_blank">sample on MSDN</a>.</p>  <p>So at this point I knew that the User Profiles had the SAP Roles populated, but the user's Claims were not being augmented with the SAP Roles.&#160; I debugged the Security Token Service and found that the Duet claims provider successfully retrieved the User Profile but the <strong>SAP Roles</strong> property (actually named <strong>OBACore-SAP-Roles</strong>) was <strong>empty</strong> so the Duet claims provider didn't have any roles to add.</p>  <p>We then realized that the issue was related to the permissions on the User Profile Application. The <strong>SAP Roles</strong> property that gets added by Duet Enterprise is added with the <strong>Default Privacy Setting</strong> set to <strong>Only Me</strong> which is visible in the image above<strong>.</strong> The problem was that the customer had configured a new identity for the <strong>SecurityTokenServiceApplicationPool</strong> but this identity didn't have any special rights on the User Profile Application. So when the Duet claims provider code running in the SecurityTokenService retrieved the user profile, it was running as the identity of the SecurityTokenServiceApplicationPool and therefore could not see any fields that had the privacy setting configured to <strong>Only Me</strong>.&#160; </p>  <p><strong></strong></p>  <p><strong>Resolution:</strong></p>  <p>To fix this we went to <strong>Central Administration</strong> selected <strong>Manage Service Applications</strong> and then clicked next to the <strong>User Profile Service Application</strong> to select it without opening. On the menu we clicked on <strong>Administrators</strong> and then we added the identity from the <strong>SecurityTokenServiceApplicationPool</strong> and gave it the <strong>Manage Profiles</strong> permission.</p>  <p>Another solution would be to use <strong>Manage User Properties</strong> in the <strong>User Profile Service Application</strong> to change the <strong>Default Privacy Setting</strong> on the <strong>SAP Roles</strong> property to be <strong>Everyone</strong> instead of <strong>Only Me.</strong></p>]]></content:encoded>
    </item>
    <item>
      <title>Cannot compile Web Service proxy.</title>
      <link>https://docs.microsoft.com/archive/blogs/duetsupport/cannot-compile-web-service-proxy</link>
      <pubDate>Tue, 24 Jan 2012 15:26:01 GMT</pubDate>
      <dc:creator><![CDATA[waltwa]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/duetsupport/2012/01/24/cannot-compile-web-service-proxy/</guid>
      <description><![CDATA[I recently worked an issue where we were getting the following error in SharePoint Designer when...]]></description>
      <content:encoded><![CDATA[<p>I recently worked an issue where we were getting the following error in SharePoint Designer when trying to create a connection to a WCF Service for a new External Content Type.</p>  <p><font color="#ff0000">Connection to the WCF service that has connection name &lt;<em>Name</em>&gt; cannot be established.</font></p>  <p><font color="#ff0000">Error Details</font></p>  <p><font color="#ff0000">Cannot compile Web Service proxy.</font></p>  <p>&#160;</p>  <p>This error isn't very detailed, so to get more information I collected a <a href="https://blogs.msdn.com/b/duetsupport/archive/2011/08/24/business-connectivity-services-bcs-client-side-logging-for-office-2010.aspx" target="_blank">BCS client-side trace</a>&#160; from the machine where I was using SharePoint Designer. In the BCS trace I could see a series of error entries similar to this:</p>  <p><font color="#ff0000">Error during Windows Communication Foundation Proxy compile: c:\Users\waltwa\AppData\Local\Temp\1\v4akfd3i.0.cs(563,60) : error CS0120: An object reference is required for the nonstatic field, method, or property 'BCSServiceProxy.<font style="background-color: rgb(255, 255, 0);">ZduetWaltTestClose.</font><font style="background-color: rgb(255, 255, 0);">System</font>.get'</font></p>  <p><font color="#ff0000">Error during Windows Communication Foundation Proxy compile: c:\Users\waltwa\AppData\Local\Temp\1\v4akfd3i.0.cs(563,67) : error CS0117: 'string' does not contain a definition for 'Xml'</font></p>  <p>&#160;</p>  <p>In the WSDL (from the Service Metadata URL) I could see that in the <strong>ZduetWaltTestClose</strong> complex type there is an element named &quot;System&quot;.</p>  <p>&#160;</p>  <p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family:;"><font color="#1f497d">If you look at the WSDL you will see an element named &quot;<strong>System</strong>&quot; in the complexType &quot;<b>ZduetWaltTestClose</b>&quot;:</font></span></p>  <p class="MsoNormal" style="margin: 0in 0in 0pt 24pt; text-indent: -12pt;"><font face="Verdana"><span style="font-family:;"><font style="font-size: 10pt;" color="#0000ff"></font></span></font><span style="font-family:;"></span></p>  <p class="MsoNormal" style="margin: 0in 0in 0pt 24pt; text-indent: -24pt;"><strong></strong></p>  <pre class="csharpcode">&lt;xsd:complexType name=<span class="str">&quot;ZduetWaltTestClose&quot;</span>&gt;
    &lt;xsd:sequence&gt;
        &lt;xsd:element name=<span class="str">&quot;Type&quot;</span> type=<span class="str">&quot;n0:char1&quot;</span> /&gt; 
        &lt;xsd:element name=<span class="str">&quot;Id&quot;</span> type=<span class="str">&quot;n0:char20&quot;</span> /&gt; 
        &lt;xsd:element name=<span class="str">&quot;Number&quot;</span> type=<span class="str">&quot;n0:numeric3&quot;</span> /&gt; 
        &lt;xsd:element name=<span class="str">&quot;Message&quot;</span> type=<span class="str">&quot;n0:char220&quot;</span> /&gt; 
        &lt;xsd:element name=<span class="str">&quot;Row&quot;</span> type=<span class="str">&quot;xsd:int&quot;</span> /&gt; 
        &lt;xsd:element name=<span class="str">&quot;Field&quot;</span> type=<span class="str">&quot;n0:char30&quot;</span> /&gt; 
        &lt;xsd:element name=<span class="str">&quot;<strong>System</strong>&quot;</span> type=<span class="str">&quot;n0:char10&quot;</span> /&gt; 
    &lt;/xsd:sequence&gt;
&lt;/xsd:complexType&gt;</pre>


<p>&#160;</p>

<p class="MsoNormal" style="margin: 0in 0in 0pt 24pt; text-indent: -24pt;">So at this point, we know that the compiler is failing when trying to work with 'BCSServiceProxy.ZduetWaltTestClose.<font style="background-color: rgb(255, 255, 255);">System</font>.get'.</p>

<p><strong></strong></p>

<p><strong>Cause</strong></p>

<p>The problem here is that during the creation of the Connection, a proxy DLL is generated based on the WSDL that is specified in the &quot;Service Metadata URL&quot; field of the WCF Connection dialog box.&#160; The first step is to convert the WSDL to a C# .NET source file (a .cs file) and this works fine.&#160; The next step is that the C# Compiler (CSC.EXE) tries to compile the .cs file into a DLL but this fails due to the method named &quot;System&quot;.&#160; To see the problem outside of SharePoint Designer, if you have Visual Studio, you can use the WSDL.EXE (note SvcUtil.exe is a better choice – see Update below) and CSC.EXE tools.</p>

<p>1. Save your WSDL to disk and give it a .wsdl extension.</p>

<p>2. In a Visual Studio Command Prompt, run wsdl.exe and pass it your .wsdl file. 
  <br />&#160;&#160;&#160; For example: 

  <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; WSDL.EXE C:\Temp\WaltsTest.wsdl 

  <br /></p>

<p>&#160;&#160;&#160; You should get output similar to: 
  <br />&#160;&#160;&#160; Writing file 'C:\Temp\Z_WALT.CS'.</p>

<p>3. Next, run:&#160;&#160; CSC.EXE /t:library C:\TEMP\Z_WALT.cs</p>

<p>&#160;&#160;&#160; This should result in the same series of errors that you see in the BCS Client trace:</p>

<blockquote>
  <p><font color="#ff0000">error CS0120: An object reference is required for the nonstatic field, method, or property 'BCSServiceProxy.ZduetWaltTestClose.<font style="background-color: rgb(255, 255, 255);">System</font>.get'</font></p>
</blockquote>

<p>To fix this we renamed the &quot;System&quot; field to &quot;SystemName&quot; on the SAP side and then it imported without any problems.</p>

<p><strong>Update</strong></p>

<p>I worked on another “<font color="#ff0000">Cannot compile Web Service proxy”</font> issue recently and the steps above to use WSDL.EXE to generate the .cs file were not sufficient to show the problem as both wsdl.exe and csc.exe commands completed without error.&#160; I found that using the Windows SDK tool SvcUtil.exe is a better representation of what SharePoint Designer is doing to generate proxies for WCF services and using SvcUtil.exe I was able to see the compiler error outside of SPD.</p>

<p>1. Save your WSDL to disk and give it a .wsdl extension.</p>

<p>2. In a Visual Studio Command Prompt, run SvcUtil.exe and pass it your .wsdl file
  <br />&#160;&#160;&#160; For example:&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; SvcUtil.exe C:\Temp\WaltsTest.wsdl </p>

<p>&#160;&#160;&#160; You should see output similar to: 
  <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Generating Files…

  <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; C:\Temp\Z_WALT.CS

  <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; C:\Temp\output.config</p>

<p>&#160;</p>

<p>3. Next, run:&#160;&#160; CSC.EXE /t:library C:\TEMP\Z_WALT.cs</p>

<blockquote>
  <p>This resulted in the following error:</p>
</blockquote>

<blockquote>
  <p><font color="#ff0000">Z_WALT.cs(219,22): error CS0101: The namespace '&lt;global namespace&gt;' already contains a definition for 'Walt'
      <br />Z_WALT.cs(17,18): (Location of symbol related to previous error)</font></p>

  <p><font color="#000000">In this case, the WSDL contained both a ComplexType and a PortType with the same name ‘Walt’.&#160; The PortType ‘Walt’ from the WSDL had resulted in an Interface named ‘Walt’ on line 17 of the Z_WALT.cs file and the ComplexType ‘Walt’ from the WSDL had resulted in a Class named ‘Walt’ on line 219 which resulted in the compiler error.</font></p>
</blockquote>

<p><font color="#000000">To fix this we renamed the PortType ‘Walt’ on the SAP side.</font></p>

<blockquote></blockquote>

<p><strong>Resolution</strong></p>

<p>To test the resolutions before making the changes SAP side, you can make changes to the downloaded .wsdl and then use the SvcUtil.EXE and CSC.EXE steps mentioned above to confirm that the .cs code can be compiled without error.</p>]]></content:encoded>
    </item>
    <item>
      <title>Duet Enterprise : Missing Site Templates in Central Admin</title>
      <link>https://docs.microsoft.com/archive/blogs/duetsupport/duet-enterprise-missing-site-templates-in-central-admin</link>
      <pubDate>Thu, 29 Dec 2011 13:23:24 GMT</pubDate>
      <dc:creator><![CDATA[JeffGa]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/duetsupport/2011/12/29/duet-enterprise-missing-site-templates-in-central-admin/</guid>
      <description><![CDATA[&#160;  After deploying Duet Enterprise you find that the Duet Enterprise Site template is missing...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p>After deploying Duet Enterprise you find that the Duet Enterprise Site template is missing when creating a new Site Collection in Central Admin.&#160; The template highlighted below is the template that is missing in this scenario.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/2860.image_64145D84.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/2860.image_5F00_64145D84.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/3443.image_thumb_472B38AF.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/3443.image_5F00_thumb_5F00_472B38AF.png" width="644" height="388" /></a></p>  <p><strong></strong></p>  <p><strong>Cause:</strong></p>  <p>You are deploying Duet Enterprise into a multi-server farm.&#160; The proper templates, specifically the ones required for the “Duet Enterprise Sites” site template are not deployed to the app server that is hosting Central Admin.</p>  <p><strong>Resolution:</strong></p>  <p>You will need to use DuetConfig.exe to configure all of the Duet Solutions to the Central Admin Web Application.&#160; To do this, go to another server in the farm that already has Duet installed and deploy the solutions and portal but point to the Central Admin webapp URL.&#160; The commands that are needed are as follows (Run from an Administrator command prompt):</p>  <blockquote>   <p>DuetConfig /configuresolution &quot;&lt;Solution being deployed&gt;&quot; /webappurl &quot;&lt;URL of the Web application hosting Central Admin&gt;&quot;</p> </blockquote>  <p>The steps above need to be done for all of the dependencies of the Portal and then followed up by the portal solution:</p>  <blockquote>   <p>- Reporting</p>    <p>- Workflow</p>    <p>- ProductWorkspace</p>    <p>- OrdertoCash</p>    <p>- CustomerWorkspace</p>    <p>- Portal (This needs to be done after all of the other solutions have been successfully deployed)</p> </blockquote>  <p>These Duet Site templates along with more information and steps are also discussed and outlined at the location below in the Deployment Guide.</p>  <blockquote>   <p><a href="https://technet.microsoft.com/en-us/library/ff972414.aspx#section4">Create a site collection by using the Duet Enterprise Sites template</a></p> </blockquote>  <p>Once you have gone through these steps, you should see the Duet Enterprise Site Templates visible in Central Admin.</p>]]></content:encoded>
    </item>
    <item>
      <title>Duet Enterprise errors with SAML Assertion when running CheckConfiguration</title>
      <link>https://docs.microsoft.com/archive/blogs/duetsupport/duet-enterprise-errors-with-saml-assertion-when-running-checkconfiguration</link>
      <pubDate>Thu, 20 Oct 2011 10:27:00 GMT</pubDate>
      <dc:creator><![CDATA[JeffGa]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/duetsupport/2011/10/20/duet-enterprise-errors-with-saml-assertion-when-running-checkconfiguration/</guid>
      <description><![CDATA[During the configuration of the Duet install on the SharePoint server, you run DuetConfig.exe...]]></description>
      <content:encoded><![CDATA[<p>During the configuration of the Duet install on the SharePoint server, you run DuetConfig.exe /CheckConfiguration to <a href="https://technet.microsoft.com/en-us/library/gg394160.aspx">verify the configuration health</a> and receive the following error:</p>  <p>“Error: The size necessary to buffer the XML content exceeded the buffer quota.”</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/5187.image_671FD3C8.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/5187.image_5F00_671FD3C8.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/1803.image_thumb_7DB1FC42.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/1803.image_5F00_thumb_5F00_7DB1FC42.png" width="618" height="176" />&#160;</a></p>  <p>You may also see the following errors in the ULS log on the SharePoint server:</p>  <pre style="padding: 5px; border: 1px solid rgb(206, 206, 206); width: 556px; height: 465px; overflow: auto; min-height: 40px; background-color: rgb(251, 251, 251);"><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);">System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---&gt; System.ServiceModel.QuotaExceededException: The size necessary to buffer the XML content exceeded the buffer quota.    Server stack trace:     
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(255, 255, 255);"> at System.ServiceModel.Channels.BufferedOutputStream.WriteCore(Byte[] buffer, Int32 offset, Int32 size)    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);"> at System.Xml.XmlStreamNodeWriter.FlushBuffer()    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(255, 255, 255);"> at System.Xml.XmlBinaryNodeWriter.FlushBuffer()    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);"> at System.Xml.XmlStreamNodeWriter.GetBuffer(Int32 count, Int32&amp; offset)    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(255, 255, 255);"> at System.Xml.XmlBinaryNodeWriter.UnsafeWriteText(Char* chars, Int32 charCount)    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);"> at System.Xml.XmlBinaryNodeWriter.WriteText(Char[] chars, Int32 offset, Int32 count)    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(255, 255, 255);"> at System.Xml.XmlBaseWriter.WriteChars(Char[] chars, Int32 offset, Int32 count)    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);"> at System.Xml.XmlBinaryWriter.WriteTextNode(XmlDictionaryReader reader, Boolean attribute)    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(255, 255, 255);"> at System.Xml.XmlDictionaryWriter.WriteNode(XmlDictionaryReader reader, Boolean defattr)    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);"> at System.ServiceModel.Channels.ReceivedFault.CreateFault12Driver(XmlDictionaryReader reader, Int32 maxBufferSize, EnvelopeVersion version)    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(255, 255, 255);"> at System.ServiceModel.Channels.MessageFault.CreateFault(Message message, Int32 maxBufferSize)    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);"> at System.ServiceModel.Channels.SecurityChannelFactory`1.ClientSecurityChannel`1.TryGetSecurityFaultException(Message faultMessage, Exception&amp; faultException)    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(255, 255, 255);"> at System.ServiceModel.Channels.SecurityChannelFactory`1.SecurityRequestChannel.ProcessReply(Message reply, SecurityProtocolCorrelationState correlationState, TimeSpan timeout)    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);"> at System.ServiceModel.Channels.SecurityChannelFactory`1.SecurityRequestChannel.Request(Message message, TimeSpan timeout)    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(255, 255, 255);"> at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);"> at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(255, 255, 255);"> at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);"> at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)    Exception rethrown
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(255, 255, 255);">at [0]:     
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);"> at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(255, 255, 255);"> at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&amp; msgData, Int32 type)    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);"> at BCSServiceProxy.IWXRead_UserRoles_in.employeeGetAll(employeeGetAllRequest request)    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(255, 255, 255);"> at BCSServiceProxy.WXRead_UserRoles_inClient.BCSServiceProxy.IWXRead_UserRoles_in.employeeGetAll(employeeGetAllRequest request)    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);"> at BCSServiceProxy.WXRead_UserRoles_inClient.employeeGetAll(GetAllRequest GetAllRequest)     -
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(255, 255, 255);">-- End of inner exception stack trace ---    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);"> at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct&amp; sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(255, 255, 255);"> at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);"> at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(255, 255, 255);"> at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)    
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(251, 251, 251);"> at Microsoft.SharePoint.BusinessData.SystemSpecific.Wcf.WcfSystemUtility.Execute(Object[] args)
</pre><pre style="margin: 0em; width: 100%; font-family: consolas,&quot;Courier New&quot;,courier,monospace; font-size: 12px; background-color: rgb(255, 255, 255);"></pre></pre>

<p>The error we see above in the ULS log is a SharePoint side generated WCF error because the error text that we received from the SAP system is larger than our buffer size.&#160; Keep in mind that this is not the real error that we are looking for, this is a generic error that is displayed on the SharePoint server due to the large error being returned by SAP.&#160; The real error is found by executing <a href="help.sap.com/saphelp_nw73/helpdata/en/e5/e5cb065d504059bed02864d133c359/content.htm" target="_blank">SAP transaction <strong>SRT_UTIL</strong></a>, SAP’s Tracing Utilities for Web Services, and looking at the captured information in the payload trace.&#160; In this case the following errors were logged:</p>

<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/1200.image_35844066.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/1200.image_5F00_35844066.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/16/metablogapi/5826.image_thumb_523DB57B.png" original-url="blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-05-16-metablogapi/5826.image_5F00_thumb_5F00_523DB57B.png" width="572" height="225" />&#160;</a></p>

<p>If you drill down into the Error text from the above exceptions you will see the following, which is the real error that allows us to determine the root cause of this issue.</p>

<p>“CX_SEC_SXML_ERROR:An exception has occurred. An exception occurred:Error in ST program SEC_SAML_ASSERTION_IN when importing XML data. Error in ST program SEC_SAML_ASSERTION_IN when importing XML data. SSFW_KRN_VERIFY failed with: verification failed, see decrypted digest.”</p>

<p><strong>Cause:</strong></p>

<p>The system time on the SharePoint Server and the SAP system are not in sync or in the allotted window of time difference. </p>

<p><strong>Resolution:</strong></p>

<p>Ensure that the SharePoint and SAP systems have their system time in-sync with each other.&#160; Additionally, you may also want to verify that the system time for each of the servers is correct for the location of the server and that they are not being set incorrectly to a different timezone/offset.</p>]]></content:encoded>
    </item>
  </channel>
</rss>