Iis

Net Core 2.1 App 通過 Octopus 部署到 IIS 在 IIS 中不可用,但從命令行啟動

  • July 27, 2018

**$$ Update $$**我在日誌中發現了以下明顯相關的條目HTTPERR

2018-07-25 14:39:06 ::1%0 49618 ::1%0 701 HTTP/1.1 GET / 400 - Hostname -

2018-07-25 14:39:06 ::1%0 49617 ::1%0 701 HTTP/1.1 GET /favicon.ico 400 - Hostname -

$$ Original $$

.NET Core 2.1第一次嘗試將應用程序部署到 IIS 伺服器(我是開發人員,而不是系統管理員)。.NET Core 支持是由系統管理員安裝的,因為我可以從命令行啟動命令(見下文),所以我相信這樣做是正確的。

我們還沒有此應用程序的證書,因此我嘗試使用純 HTTP 訪問進行部署(到目前為止,應用程序中的所有頁面都是虛擬數據,我們將訪問 IIS 伺服器列入白名單)。我已經在應用程序啟動程式碼中進行了必要的更改以避免 HTTPS 重定向,並且我相信我這樣做是正確的(見下文)。

此外,此應用程序綁定到埠 701(因為 80 已在使用中)。完整綁定使用http主機名myapplication.mycompany.com、埠701和 IP 地址*

該應用程序已正確部署,並且似乎可以通過 IIS 管理器“啟動”和“停止”。但是,當我瀏覽到應用程序時,瀏覽器視窗會在幾秒鐘後超時並顯示一條ERR_CONNECTION_TIMED_OUT消息。

當我直接使用dotnet .\myapplication.dll它啟動應用程序時,它會報告監聽 5000,並且我可以從執行在同一台機器上的瀏覽器訪問它。

此外,我注意到此應用程序在 IIS 中分配了 ID 4,但在\inetpub\logs\LogFiles查看文件夾時,我只看到 W3SVC1、W3SVC2 和 W3SVC3 文件夾,沒有 ID 4 的日誌文件夾。

最後,我確保(我認為)此應用程序的 AppPool 在應用程序的部署文件夾中具有執行和寫入權限。

誰能建議我在讓 IIS 執行我的普通 http 服務時可能錯過了什麼步驟,或者如果失敗了,我如何在沒有日誌的情況下調試問題?

回答我自己的問題:

維護我們的私有云伺服器的外部提供商已正確添加了myapplication子域的 DNS 記錄,但忽略了添加防火牆規則以允許埠 701 上的流量進入私有云。添加此規則顯然解決了問題。

在您的應用程序池中,將 .NET Framework 版本更改為“無託管程式碼”。

引用自:https://serverfault.com/questions/923536