小编Sud*_*ahu的帖子

Google地图无法加载.挂起authenticationService.authenticate

我有一个Google Maps应用程序,可以在多台开发人员计算机上完美运行,但在部署到面向Internet的Web服务器时无法运行.

开发人员机器都使用访问应用程序

http://localhost
Run Code Online (Sandbox Code Playgroud)

但是,在面向Internet的Web服务器上,应用程序当然可以通过有效域访问

http://<Some Domain>/<application>
Run Code Online (Sandbox Code Playgroud)

在浏览器端调试我看到从浏览器进行的最后一次调用是

https://maps.googleapis.com/maps/api/js/AuthenticationService.Authenticate?1shttp://<the proper domain>/corpsuser/User_Page.html&callback=_xdc_._9p58yx&token=125651
Run Code Online (Sandbox Code Playgroud)

(域名掩盖)

事物挂起的地图应用程序代码似乎是javascript:

map = new google.maps.Map(document.getElementById('map'), mapOptions);
Run Code Online (Sandbox Code Playgroud)

正确定义元素'map'和对象mapOptions(毕竟,app在dev机器上工作正常)

我猜这是许可/关键问题.

我登录了用于启用Google Maps API并生成浏览器密钥的Google帐户,并且还将该域添加/关联到密钥,但这不起作用.注意到有消息表示最多可能需要5分钟才能反映出更改.所以等了一段时间,仍然没有运气.

深入挖掘,我看到一些调用,例如snapToRoads API将Server API Key作为参数.

但是,应用程序挂起的调用是设置映射的第一次调用,并且不接受API密钥.

谷歌文档说我需要在某个地方使用这个标签

<script async defer src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

我应该在哪里添加它?我是否必须定义initMap函数?还是应该按原样使用?

任何帮助将不胜感激.

google-maps google-maps-api-3

7
推荐指数
1
解决办法
4637
查看次数

具有主键但不具有聚集索引的 EF Core 实体

对于实体框架,当我们在实体上有主键时,EF 总是会生成聚集索引。

public class TestEntity
{
    [key]
    public int NaturalKeyId;

    public string Field2;
    public string Field3;
}
Run Code Online (Sandbox Code Playgroud)

NaturalKeyId字段将形成聚集索引。

有没有办法将其保留为(唯一)主键,但不将其作为聚集索引?在我被欺骗之前,我同意在单调递增(代理)字段上拥有聚集索引通常会更好Id。但是在特定情况下,所有更新操作始终使用 NaturalKey (没有为更新传入方便的 Id 。更新始终由只知道 Natural Key 的外部系统触发),我想避免(如果可能)在能够更新/删除实体之前必须首先通过自然键读取实体的开销。

我无法将自然键本身转换为聚集索引,因为键值本质上是随机的,并且我将面临插入的页面拆分。

编辑:NaturalKeyId我已经有了一个可行的解决方案,在运行迁移后,我使用唯一索引而不是聚集索引在数据库中手动重新创建了表。

entity-framework entity-framework-core

3
推荐指数
1
解决办法
1594
查看次数