小编Jon*_*ndt的帖子

项目文件不完整.预计进口量不足

格式化我的电脑后,我重新安装了Vs 2017 V 15.6.3并从Microsoft 2.1.4安装ASP.Net Core SDK

但是当我创建新的asp核心应用程序VS失败时出错

"项目文件不完整.缺少预期的进口"

拜托,有人可以帮忙吗?

创建ASP核心应用程序后出错

c# visual-studio .net-core

82
推荐指数
11
解决办法
4万
查看次数

如何评估Windows环境变量?

如果我有一个具有相同名称的系统和用户环境变量,它们是如何处理的?它们是连在一起的吗?用户变量是否覆盖系统变量?考虑到这一点,如果我需要在Path变量中添加一些内容,添加它会更方便吗?

windows environment-variables

19
推荐指数
3
解决办法
2万
查看次数

ASP.NET Core 2.0将Cookie和承载授权结合在一起,用于同一端点

我在VS17中使用"Web应用程序(模型 - 视图 - 控制器)"模板和".Net Framework"+"ASP.NET Core 2"作为配置创建了一个新的ASP.NET核心Web应用程序项目.身份验证配置设置为"个人用户帐户".

我有以下示例端点:

[Produces("application/json")]
[Route("api/price")]
[Authorize(Roles = "PriceViwer", AuthenticationSchemes = "Cookies,Bearer")]
public class PriceController : Controller
{

    public IActionResult Get()
    {
        return Ok(new Dictionary<string, string> { {"Galleon/Pound",
                                                   "999.999" } );
    }
}
Run Code Online (Sandbox Code Playgroud)

"Cookies,Bearer"是通过连接CookieAuthenticationDefaults.AuthenticationScheme和派生而得到的JwtBearerDefaults.AuthenticationScheme.

目标是能够为端点配置授权,以便可以使用令牌和cookie身份验证方法访问它.

以下是我在Startup.cs中进行身份验证的设置:

    services.AddAuthentication()
        .AddCookie(cfg => { cfg.SlidingExpiration = true;})
        .AddJwtBearer(cfg => {
            cfg.RequireHttpsMetadata = false;
            cfg.SaveToken = true;
            cfg.TokenValidationParameters = new TokenValidationParameters() {
                                                    ValidIssuer = Configuration["Tokens:Issuer"],
                                                    ValidAudience = Configuration["Tokens:Issuer"],
                                                    IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Tokens:Key"]))
                                                };
        });
Run Code Online (Sandbox Code Playgroud)

因此,当我尝试使用浏览器访问端点时,我得到了一个带有空白html页面的401响应. …

.net c# asp.net authentication asp.net-core-2.0

19
推荐指数
3
解决办法
7761
查看次数

项目设置中缺少Visual Studio 2017包选项卡

我创建了一个简单的.NET Framework项目库.

我想生成所描述的建立后的NuGet包在这里.

但是,缺少Package选项卡,这是一个截图:
截图

c# msbuild nuget visual-studio-2017

17
推荐指数
1
解决办法
6843
查看次数

有没有在Visual Studio中切换C99和C11 C标准的选项?

我是Visual Studio Environment的新手,我正在使用VS2017 Pro.我想在C中编写简单的程序,并使用c99c11标准编译.在Visual Studio中,我只能找到C++标准的编译器开关.

我们怎样才能知道我们要来编译当前的代码以Visual Studio环境c99c11 Ç标准.

编译开关

标准开关

c c99 visual-studio visual-c++ c11

13
推荐指数
2
解决办法
7939
查看次数

iOS 11中MKMapView集群的性能不佳

我一直在使用第三方库来处理标记聚类.由于iOS 11有自己的实现,我决定继续代表"本机"实现移除第三方库.

我已经从WWDC 2017下载了示例应用程序,并按照相同的步骤操作,因此:

  • 连接MKMapView插座
  • MKAnnotation为我的模型实现协议
  • 创建一个MKMarkerAnnotationViewfor marker的视图
  • 创建一个MKMarkerAnnotationViewfor cluster的视图
  • 使用register(_:forAnnotationViewWithReuseIdentifier:)函数在mapView引用上注册两个注释
  • 添加注释到我的地图

但是,在使用第三方库时,一切都很好,使用这种方法,当我平移我的mapView并更改区域时,我的性能非常差.CPU使用率提升高达90%,而内存似乎保持稳定,我感觉延迟移动,有时甚至是应用程序崩溃.我正在加载大约600个注释.

有什么建议吗?

这是代码:

class MapViewClusteringViewController: UIViewController, MKMapViewDelegate {

  @IBOutlet weak var mapView: MKMapView!
  private var databaseService: LocalDataService!

  override func viewDidLoad() {
    super.viewDidLoad()
    mapView.delegate = self
    mapView.register(StopMarker.self, forAnnotationViewWithReuseIdentifier: MKMapViewDefaultAnnotationViewReuseIdentifier)
    mapView.register(StopCluster.self, forAnnotationViewWithReuseIdentifier: MKMapViewDefaultClusterAnnotationViewReuseIdentifier)

    databaseService.fetchMarkers { markers in
      mapView.addAnnotation(markers)
    }
  }
}

class StopMarker: MKMarkerAnnotationView {
  override var annotation: MKAnnotation? {
    willSet {
      clusteringIdentifier = "busStopCluster"
      subtitleVisibility = .adaptive
      markerTintColor = .red …
Run Code Online (Sandbox Code Playgroud)

mapkit ios swift

12
推荐指数
1
解决办法
1520
查看次数

从json转换为List <object>导致异常

所以这是我的问题,我有一个API设置,以JSON字符串格式返回Azure存储表的结果:

   [{
        "CustID": "f3b6.....0768bec",
        "Title": "Timesheet",
        "CalendarID": "AAMkADE5ZDViNmIyLWU3N2.....pVolcdmAABY3IuJAAA=",
        "PartitionKey": "Project",
        "RowKey": "94a6.....29a4f34",
        "Timestamp": "2018-09-02T11:24:57.1838388+03:00",
        "ETag": "W/\"datetime'2018-09-02T08%3A24%3A57.1838388Z'\""
    }, {
        "CustID": "5479b.....176643c",
        "Title": "Galaxy",
        "CalendarID": "AAMkADE5Z.......boA_pVolcdmAABZ8biCAAA=",
        "PartitionKey": "Project",
        "RowKey": "f5cc....86a4b",
        "Timestamp": "2018-09-03T13:02:27.642082+03:00",
        "ETag": "W/\"datetime'2018-09-03T10%3A02%3A27.642082Z'\""
    }]
Run Code Online (Sandbox Code Playgroud)

我试图将其转换回Project对象:

public class Project : TableEntity
    {
        public Project() { }

        public Project(string rKey, string pKey = "Project")
        {
            this.PartitionKey = pKey;

            this.RowKey = rKey;
        }

        public Guid CustID { get; set; }
        public string Title { get; set; }
        public string CalendarID { get; set; } …
Run Code Online (Sandbox Code Playgroud)

c# json

11
推荐指数
1
解决办法
173
查看次数

如何追踪事件监听器的添加位置?

我有一个相当好的javascript(有react/redux但没有jquery)我正在构建的webapp的代码库,我注意到当我在UI中反复打开和关闭某个面板时,听众的数量依据Chrome的性能时间表不断增加.

该图如下所示: 时间线图

我已经允许chrome的性能监视器运行一两分钟,页面处于空闲状态(在打开/关闭面板之后),希望听众可能会收集垃圾,但事实并非如此.我在这个过程中切换到其他选项卡,也希望听众在选项卡背景时收集垃圾,但不幸的是,他们不会.

因此,我怀疑某些听众正在注册,但从未注册过.

这引出了两个主要问题:

  1. 我的假设是听众是否会得到补充并且从未被束缚似乎是明智的,或者我是否还有更多可以证实这种怀疑?
  2. 假设我的怀疑是正确的,我怎样才能最好地追踪添加事件监听器的代码?我已经尝试过以下方法:
    • 查看负责打开相关面板的代码,查看它添加任何侦听器的位置,并注释掉这些部分以查看性能图中是否有任何更改.没有变化.
    • 像这样重写addEventListener原型:

 

var f = EventTarget.prototype.addEventListener;
EventTarget.prototype.addEventListener = function(type, fn, capture) {
    this.f = f;
    this.f(type, fn, capture);
    console.trace("Added event listener on" + type);
}
Run Code Online (Sandbox Code Playgroud)

即使在这样做之后,然后注释掉导致执行此console.trace的所有代码部分(参见#1),以便在打开/关闭面板时不再打印console.trace,我注意到听众的增加相同在性能图表中.其他一些因素导致听众增加.我知道还有其他方法可以添加监听器,但是我不清楚如何拦截所有这些可能性或导致它们以这样的方式登录Chrome的调试器,以便我可以告诉哪些代码负责添加它们.

编辑: - 根据评论中cowbert的建议,我看了一下这个页面:https: //developers.google.com/web/tools/chrome-devtools/console/events

然后我做了以下功能:

function printListenerCount() {
    var eles = document.getElementsByTagName("*");
    var numListeners = 0;
    for (idx in eles) { let listeners = getEventListeners(eles[idx]);
        for(eIdx in listeners)
        {
            numListeners += listeners[eIdx].length;
        }
        console.log("ele", eles[idx], "listeners", getEventListeners(eles[idx]));
    }
    console.log("numListeners", numListeners)
}
Run Code Online (Sandbox Code Playgroud)

我打开/关闭面板多次后执行此功能,但不幸的是"numListeners"数字没有改变.如果numListeners数字发生了变化,我可以在打开/关闭面板之前/之后对结果进行区分,以发现哪个元素有额外的事件监听器注册到它,但不幸的是numListeners没有改变.

https://developers.google.com/web/tools/chrome-devtools/console/events …

javascript

10
推荐指数
1
解决办法
695
查看次数

如何使用Elastic Load Balancer和EC2/Nginx解决HTTPS请求中的502 Bad Gateway错误?

在运行Nginx的EC2实例前面使用AWS Elastic Load Balancer(应用程序类型)时,我遇到了HTTPS请求的"502 Bad Gateway"问题.Nginx在服务于python应用程序(金字塔框架)的服务器服务器的每个实例上充当反向代理.我正在尝试在ELB上使用TLS终止,以便EC2实例仅处理HTTP.这是粗略的设置:

客户端HTTPS请求> ELB(侦听443,在后端转发到80)> Nginx侦听端口80(在Ec2实例上)>转发到waitress/Pyramid(在同一个ec2实例上)

当我在HTTPS上发出请求时,我收到502错误.但是,当我发出常规HTTP请求时,我会得到预期的响应(与上面相同的设置,除了ELB正在侦听端口80).

一些额外的信息:ELB健康检查正在运行.所有VPC /安全组都配置正确(我相信).我正在使用AWS上的标准设置/演练在ELB上使用AWS证书.我通过SSH进入Ec2实例和Nginx访问日志,看起来HTTPS请求仍然是加密的?还是一些编码问题?

看起来像这样

这是EC2实例上的nginx.conf:

#user  nobody;
worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    access_log /etc/nginx/access.log;  
    sendfile        on;

    # Configuration containing list of application servers
    upstream app_servers {

        server 127.0.0.1:6543;
    }   

    server {
        listen       80;
        server_name  [MY-EC2-SERVER-NAME];


        # Proxy connections to the application servers
        # app_servers
        location / {

            proxy_pass         http://app_servers;
            proxy_redirect     off;
            proxy_set_header   Host $host;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host $server_name;

        } …
Run Code Online (Sandbox Code Playgroud)

reverse-proxy nginx amazon-web-services amazon-elb

9
推荐指数
1
解决办法
8770
查看次数

升级Android Studio NDK后出错:未设置CMAKE_C_COMPILER和CMAKE_CXX_COMPILER

更新Android Studio NDK后,由于与CMAKE相关的错误(我的应用程序使用一个c ++文件),我无法构建我的应用程序.以下是错误行:

Build command failed.
Error while executing process C:\Users\AnimallTag\AppData\Local\Android\sdk\cmake\3.6.4111459\bin\cmake.exe with arguments {-HC:\Projetos\Git\at65\app -BC:\Projetos\Git\at65\app\.externalNativeBuild\cmake\debug\mips -GAndroid Gradle - Ninja -DANDROID_ABI=mips -DANDROID_NDK=C:\Users\AnimallTag\AppData\Local\Android\sdk\ndk-bundle -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=C:\Projetos\Git\at65\app\build\intermediates\cmake\debug\obj\mips -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=C:\Users\AnimallTag\AppData\Local\Android\sdk\cmake\3.6.4111459\bin\ninja.exe -DCMAKE_TOOLCHAIN_FILE=C:\Users\AnimallTag\AppData\Local\Android\sdk\ndk-bundle\build\cmake\android.toolchain.cmake -DANDROID_PLATFORM=android-14}
 (include)   CMakeLists.txt 
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
Run Code Online (Sandbox Code Playgroud)

有什么建议可以帮我解决这个问题吗?也许我可以降级NDK或我可以安装的Android Studio以前的版本...

Android Studio中的错误屏幕

java android cmake android-ndk android-studio

9
推荐指数
2
解决办法
5515
查看次数