WCF Registered base address schemes are []

Moved WCF service from old server to 2012 server to find the WCF service would not run. It complained that

"Could not find a base address that matches scheme http for the endpoint with binding WebHttpBinding. Registered base address schemes are []"

Stack overflow post below was the lead as to how to resolve it:

WCF Registered base address schemes are [] error with https

With a fake IP address for purposes of this post, the WCF config section had the follow lines, removing the <add prefix… line from the .config brought the service to life.

<add prefix=""/>
So what is the baseAddressPrefix? –it is for dealing with where there are multiple IIS bindings for a site providing a listening filter for the service.

To quote MS documents:

“A prefix filter provides a way for shared hosting providers to specify which URIs are to be used by the service. It enables shared hosts to host multiple applications with different base addresses for the same scheme on the same site.+

IIS Web sites are containers for virtual applications which contain virtual directories. The application in a site can be accessed through one or more IIS bindings. IIS bindings provide two pieces of information: binding protocol and binding information. Binding protocol (for example, HTTP) defines the scheme over which communication occurs, and binding information (for example, IP Address, Port, Hostheader) contains data used to access the site.

IIS supports specifying multiple IIS bindings for each site, which results in multiple base addresses for each scheme. Because a WCF service hosted under a site allows binding to only one base address for each scheme, you can use the prefix filter feature to pick the required base address of the hosted service. The incoming base addresses, supplied by IIS, are filtered based on the optional prefix list filter.”

Dynamics GP basic pricing export to Excel with crosstab SQL

The following SQL table function allows exporting of GP prices into Excel.
Assumes max of 6 price breaks, but can be expanded.
SELECT * FROM [Extract_PricesCrosstabTable_Fast] ('GBP','TRADE','%') ORDER BY ITEMNMBR
-- =============================================
-- Author: Tim Wappat
-- Create date: 2010-08-02
-- Description: Function to crosstab price breaks for price level

-- Faster set based non-cursor version of crosstab for pricing
-- =============================================

CREATE FUNCTION [Extract_PricesCrosstabTable_Fast] (

RETURNS @ReturnTable TABLE (
,[BREAK1] [varchar](255) NOT NULL
,[PRICE1] [numeric](19, 5) NULL
,[BREAK2] [varchar](255) NOT NULL
,[PRICE2] [numeric](19, 5) NULL
,[BREAK3] [varchar](255) NOT NULL
,[PRICE3] [numeric](19, 5) NULL
,[BREAK4] [varchar](255) NOT NULL
,[PRICE4] [numeric](19, 5) NULL
,[BREAK5] [varchar](255) NOT NULL
,[PRICE5] [numeric](19, 5) NULL
,[BREAK6] [varchar](255) NOT NULL
,[PRICE6] [numeric](19, 5) NULL

WITH PriceTableCte (
AS (
) AS 'PriceBreak'
FROM IV00108

INSERT @ReturnTable
WHEN PriceTableCte.[PriceBreak] = 1 THEN LTRIM(CONCAT(STR(FROMQTY, 6, 0), '+'))
END), '') AS PriceBreak1
WHEN PriceTableCte.[PriceBreak] = 1 THEN UOMPRICE
END) AS Price1
WHEN PriceTableCte.[PriceBreak] = 2 THEN LTRIM(CONCAT(STR(FROMQTY, 6, 0), '+'))
END), '') AS PriceBreak2
WHEN PriceTableCte.[PriceBreak] = 2
END) AS Price2
WHEN PriceTableCte.[PriceBreak] = 3 THEN LTRIM(CONCAT(STR(FROMQTY, 6, 0), '+'))
END), '') AS PriceBreak3
WHEN PriceTableCte.[PriceBreak] = 3
END) AS Price3
WHEN PriceTableCte.[PriceBreak] = 4 THEN LTRIM(CONCAT(STR(FROMQTY, 6, 0), '+'))
END), '') AS PriceBreak4
WHEN PriceTableCte.[PriceBreak] = 4
END) AS Price4
WHEN PriceTableCte.[PriceBreak] = 5 THEN LTRIM(CONCAT(STR(FROMQTY, 6, 0), '+'))
END), '') AS PriceBreak5
WHEN PriceTableCte.[PriceBreak] = 5
END) AS Price5
WHEN PriceTableCte.[PriceBreak] = 6 THEN LTRIM(CONCAT(STR(FROMQTY, 6, 0), '+'))
END), '') AS PriceBreak6
WHEN PriceTableCte.[PriceBreak] = 6
END) AS Price6
FROM PriceTableCte



A coutrecords operation on table ‘[Not Found]’ cannot find the table–Dynamics GP

Symptom: User experiencing this error dialog when using navigation lists, but can happen in other areas of Dynamics GP

A countrecords operation on table '[Not found]' cannot find the table

Cause and solutions:

This error is caused by the client machine that is running Dynamics GP loosing network connection at some point during the Dynamics GP session. Dynamics GP holds some long lived connections, especially where temp tables are in use (for example in navigation lists). Indeed it is necessary for GP to keep the connection alive or the temp table will be reclaimed by SQL server as soon as the last connection to it drops. It may also be that you see an associated error similar to the following, with a random looking numeric table name for the global temp table. This is the result of the connection loss.

SQL Server, Invalid object name ‘##293343’

There can be many root causes for a SQL connection to be lost in action. Network infrastructure failures, due to cabling faults in RJ45 connectors, network cards, when the kicks the cables under desk intermittent errors, or someone re-patching live network cabling, network cards starting to fail due to wear and tear etc. These hardware related issues used to cause us issues many years ago, but with a better infrastructure, in recent years it has been software issues in the shape of “sleep settings”. Perhaps there is a poor wifi bridge or similar weak network infrastructure that needs attention, as every time someone starts the microwave in the canteen the wifi drops… – you get the idea, so much to investigate.

The server being rebooted, or SQL server tier being torn down while the user is using GP can also result in the same error. 

The advanced settings of the network card can present various settings, including allowing the operating system to put the network card to sleep, supposed power efficiency? The machine OS sleep settings may be putting the machine into sleep or hibernate after a certain period of time, there may be BIOS settings too.

Users who take long lunches, or leave machines on overnight with GP logged in will more than likely get caught out by sleep settings. When the machines are left inactive they go to sleep loosing the SQL connection and resulting in the above error. I’ve seen more of this since we moved the estate to Windows 10, I don’t think I can draw any real conclusions from that though. I have also experienced users putting their machines to sleep when going for lunch or overnight, manually from the start menu. For this reason Active Directory Group Policy has been created and rolled out to lock down such settings for the GP users.

Although not personally experienced, I have read that this may also be that the ODBC connection settings not being set up correctly. For Dynamics GP, uncheck “Use ANSI quoted identifiers” and “Use ANSI nulls, paddings and warnings”, Uncheck “Perform translation for character data” in the ODBC settings.

See: How To Create An ODBC For Microsoft Dynamics GP 2010 which is applicable for all versions of GP.

Hopefully this has been useful to you – let me know if it has with a comment – motivates me to write more!

TF400409 you do not have licensing right to access this feature

Setting up a new user for team foundation server, although user has been added to all the licencing groups and project groups, they cannot expand the root node of the team collection. They can also not access the portal security pages as it gives the above error.

Turned out to be that they needed the access level for the user setting.

This is outlined within the document here: https://docs.microsoft.com/en-gb/vsts/security/change-access-levels


You may follow this route to the access level admin (in the version we use)

Select Security from the Team Explorer Settings menu from Visual Studio


Navigate to the root of the control panel


Navigate to the Access Levels tab



Put the user under the appropriate access level of Basic or Advanced. This should then allow them to access the web portal without error and expand the source control collection node to see the individual projects (assuming you’ve set them up correctly with those too).