部署到 Azure 后出错:"The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect."

Error after deploy to Azure: "The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect."

我正在使用 Visual Studio 2019 在 .NET Core 3.1 中开发应用程序,在我使用 Windows 10 Pro 的本地计算机上一切正常。但部署到 Azure 后出现此问题:

The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 9 ("@p8"): The supplied value is not a valid instance of data type geography. Check the source data for invalid values. An example of an invalid value is data of numeric type with scale greater than precision

将 Post 添加到数据库时发生此错误。 Post 具有 属性 类型 NetTopologySuite.Geometries.Point 并且设置如下: location = new Point(longitude, latitude) { SRID = 4326 }; 其中经度和纬度是双倍的。

当我将位置设置为 null 时,不会出现错误。 我尝试使用较低的精度,例如点之前的 2 位数字和点之后的 6 位数字 - 这仍然会导致错误。

我用的是Entity Framework核心。它生成的数据库列为 Location (geography, null).

编辑: 我正在将纬度和经度字符串转换为双精度字符串:Convert.ToDouble(longitude.Replace(".", ","))。我删除了 .Replace(".", ","),现在它可以在 Azure 上运行,但在本地环境中出现同样的错误。 我在两个数据库上都有 ID 为 4326 的空间。

最后我改了:

Convert.ToDouble(longitude.Replace(".", ","))

Convert.ToDouble(longitude, CultureInfo.InvariantCulture)

现在它适用于本地和 Azure。

受此启发的解决方案:string to double issue, dot is removed