2015-10-18 52 views
6

升級到Beta 8後,使用Windows身份驗證進行調試在IIS Express中不起作用。我遇到錯誤ASP.NET MVC6 Beta8和Windows身份驗證

「嘗試確定託管應用程序的DNX進程的進程ID時發生錯誤。」

重現步驟:

  1. 創建一個新項目並選擇空白網頁模板。
  2. 在項目設置中,將IIS Express設置更改爲使用Windows身份驗證。取消選中匿名身份驗證。
  3. 啓用SSL。
  4. 調試項目。
  5. 出現錯誤。

我正在使用Windows和Visual Studio的新安裝。除了installation files之外,我還需要下載其他軟件嗎?

+0

謝謝。我的問題發生在使用Beta 8創建的項目上,而不是在升級過程中。任何想法爲什麼? – Sam

+0

我有完全相同的問題薩姆 - 完美地與Windows身份驗證未勾選,勾選它,它不再起作用。我已經完成了@ pj-mahoney提到的答案中推薦的所有內容,似乎沒有任何幫助。 –

+0

看起來像這是一個工具錯誤 - 請參閱[這個公開問題](https://github.com/aspnet/Hosting/issues/419) - 我試圖找出一個解決方法,並會發佈一個答案,如果我做。 –

回答

3

正如評論中指出的那樣,有一個open tooling issue for this bug。在此同時,我已經能夠成功地調試使用WebListener這需要以下兩個變化:

Startup.cs

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

,並在Configure方法Add:

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" 
}, 

,並確保你在dependencies部分

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

有WebListener因爲我是從公測7升級,我不得不改變我hosting.ini文件轉換成JSON格式 - 不知道這是重要的或者不是!

完成此操作後,您應該可以使用weblistener而不是IIS Express進行調試。因爲kestrel不支持(也不會)支持NTLM身份驗證,所以使用web(即kestrel)進行調試不起作用。

我發現,如果我直接在project.json中更改了「web」命令,Visual Studio會幫助將其更改回kestrel,因此添加單獨的命令as recommended by the Microsoft team似乎可以讓所有內容都保持開心。

+0

@Sam我已經更新了這個答案,因爲我發現Visual Studio不斷改變我的「網絡」命令回到Kestrel,不管我做了什麼。讓我知道如果這不適合你。 –