2015-12-17 67 views
10

我的印象是,我們實際上可以在監聽和提供數據的實時服務器上運行控制檯應用程序(如果網頁是爲了這個目的的話)。這樣,我們就不必在IIS上託管我們的Web應用程序。我一直認爲這就是「在你自己的過程中託管網絡應用程序」的意思。ASP.net 5在Windows Server上自行託管 - EACCES權限被拒絕?

這裏是我的project.json的一部分,我認爲是相關的:

"dependencies": { 
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final", 
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final" 
    }, 

    "commands": { 
    "web": "Microsoft.AspNet.Server.Kestrel --server.urls http://localhost:5010" 
    }, 

如果我去的命令提示符下,DIR到項目的根目錄,然後運行DNX網絡,是的,事實上,控制檯應用程序正在運行,我可以去我的瀏覽器並輸入http://localhost:5010並查看網站。

但是,當我更改該網址到一個實際的網址(是的,我已經有DNS指向我的服務器爲該網址),我會得到錯誤EACCES permission denied

如果我們可以「自我託管」,但只有本地主機,這似乎只對本地開發有好處。如果它不能用於生產/生產,爲什麼有能力「在我自己的過程中自我託管」 ?

我需要做什麼?我需要設置一些特定文件夾的權限嗎?哪個用戶/組,哪個權限以及哪個文件夾?我在項目的根目錄上嘗試了IIS_IUSRS,當然,這不起作用,因爲我想繞過IIS。

任何幫助將不勝感激。

+1

你有沒有琢磨出來了嗎? 是否有可能其他應用程序已經在使用此端口?就像IIS中的應用程序一樣,另一個應用程序實例正在運行? 你可以從控制檯粘貼整個輸出日誌嗎? –

+0

我想你可能是對的。有一個網站在IIS中註冊,我試圖讓Kestrel傾聽。我會研究這一點,當我找到任何東西時我會回覆你。 –

+1

我只是有一個類似的錯誤,並且更改端口解決了它。 IIS在80端口有一些應用程序。謝謝@JijieChen –

回答

14

對於任何人發現這個問題後:

當您啓動紅隼服務器,您需要確保有沒有什麼偵聽該端口,否則將無法啓動。如果您嘗試在標準http(端口80)上託管某些東西,IIS是一個明顯的罪魁禍首。您需要停止在該端口上運行的其他任何內容,或使用它將流量轉發到您的Kestrel服務器上。直接在IIS託管ASP.NET項目5個

更多信息可以在這裏找到:https://docs.asp.net/en/latest/publishing/iis.html

相關問題