asp.net-core-mvc – ASP.NET MVC6 Beta8和Windows身份验证

升级到Beta 8后,使用 Windows身份验证进行调试在IIS Express中不起作用.我收到了一个错误

“An error occurred attempting to determine the process id of the DNX process hosting your application.”

重现步骤:.

>创建一个新项目,然后选择Empty web template.
>在项目设置中,将IIS Express设置更改为使用Windows身份验证.取消选中匿名身份验证.
>启用SSL.
>调试项目.
>出现错误.

我正在使用Windows和Visual Studio的新安装.除了installation files之外,我还需要下载任何其他软件吗?

解决方法

评论中所述,有一个 open tooling issue for this bug.与此同时,我已经能够使用WebListener成功调试,需要进行以下两项更改:

在Startup.cs中

using Microsoft.AspNet.Http.Features;
using Microsoft.Net.Http.Server;

并在Configure方法添加

var listener = app.ServerFeatures.Get<WebListener>(); 
if (listener != null)
{ 
    listener.AuthenticationManager.AuthenticationSchemes = AuthenticationSchemes.NTLM; 
}

在project.json中添加一个新的weblistener命令,如下所示:

"commands": {
  "weblistener": "Microsoft.AspNet.Server.WebListener --config hosting.ini","web": "Microsoft.AspNet.Server.Kestrel"
},

并确保在依赖项部分中有WebListener

"Microsoft.AspNet.Server.WebListener": "1.0.0-beta8",

当我从beta 7升级时,我不得不将我的hosting.ini文件更改为json格式 – 不知道这是否重要!

完成此操作后,您应该能够使用weblistener而不是IIS Express进行调试.使用web(即kestrel)进行调试不起作用,因为kestrel不支持(也不支持)NTLM身份验证.

我发现,如果我直接在project.json中更改了“web”命令,Visual Studio会将其有效地改回到红隼,因此添加一个单独的命令as recommended by the Microsoft team似乎可以让一切都快乐.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....