設定 HTTP 和 HTTPS

WCF 服務與用戶端可以透過 HTTP 和 HTTPS 進行通訊。 HTTP/HTTPS 設定是使用 Internet Information Services (IIS),或使用命令列工具設定。 在 IIS HTTP 或 HTTPS 之下裝載 WCF 服務時,設定可以在 IIS (使用 inetmgr.exe 工具) 內進行。 如果是自我裝載的 WCF 服務,可以使用命令列工具設定 HTTP 或 HTTPS 設定。

您至少需要設定 URL 註冊,並針對您的服務將要使用的 URL 加入防火牆例外狀況。 您可以透過 Netsh.exe 工具來設定這些選項。

設定命名空間保留區

命名空間保留區會將一部分 HTTP URL 命名空間的權限指派給特定的使用者群組。 保留區會授予這些使用者建立服務的權限,以接聽那一部分的命名空間。 保留區是 URL 前置詞,亦即保留區可涵蓋保留路徑的所有子路徑。 命名空間保留區允許兩種使用萬用字元的方式。 HTTP 伺服器 API 文件說明了命名空間的宣告內容採用萬用字元時的解析順序

執行中的應用程式可以建立類似的要求來新增命名空間註冊區。 註冊區與保留區會競爭使用命名空間的各個部分。 根據命名空間的宣告內容採用萬用字元時的解析順序一文中對解析順序的說法,保留區會比註冊區優先。 在此情況中,保留區會封鎖執行中的應用程式,使其無法接收要求。

下列範例使用 Netsh.exe 工具:

netsh http add urlacl url=http://+:80/MyUri user=DOMAIN\user

這個命令會針對 DOMAIN\使用者帳戶的指定 URL 命名空間加入 URL 保留區。 如需詳細瞭解如何使用 netsh 命令,請在命令提示字元輸入 netsh http add urlacl /?,然後按 Enter。

設定防火牆例外狀況

對透過 HTTP 通訊的 WCF 服務進行自我裝載時,您必須將例外狀況加入至防火牆組態中,以允許使用特殊 URL 的傳入連線。

設定 SSL 憑證

Secure Sockets Layer (SSL) 通訊協定會在用戶端與伺服器上使用憑證來儲存加密金鑰。 伺服器會在連線期間提供自己的 SSL 憑證,方便用戶端驗證伺服器的身分識別。 伺服器也可以向用戶端要求憑證,以便連線的雙方進行互相驗證。

憑證會依據 IP 位址與連線的連接埠號碼,儲存在集中保管的存放區。 特殊 IP 位址 0.0.0.0 會符合本機電腦的任何 IP 位址。 請注意,憑證存放區無法依照路徑來識別 URL。 包含相同 IP 位址與連接埠號碼組合的服務必須共用憑證,就算每項服務之 URL 中的路徑都不一樣也需這麼做。

如需逐步指示,請參閱如何使用 SSL 憑證設定連接埠

設定 IP 接聽清單

一旦使用者註冊了 URL,HTTP 伺服器 API 只會繫結至 IP 位址與連接埠。 根據預設,HTTP 伺服器 API 會針對電腦中的所有 IP 位址繫結至其 URL 中的連接埠。 如果已經繫結至 IP 位址與連接埠組合的應用程式不使用 HTTP 伺服器 API,就會產生衝突。 IP 接聽清單允許 WCF 服務和針對某些電腦 IP 位址使用連接埠的應用程式共存。 如果 IP 接聽清單包含任何項目,則 HTTP 伺服器 API 只會繫結至清單所指定的特定 IP 位址。 您需要系統管理員權限才能修改 IP 接聽清單。

請使用 netsh 工具來修改 IP 接聽清單,如下列範例所示:

netsh http add iplisten ipaddress=0.0.0.0:8000

其他組態設定

使用 WSDualHttpBinding 時,用戶端連線會使用與命名空間保留區及 Windows 防火牆相容的預設值。 如果您選擇自訂雙向連線的用戶端基底位址,則您必須同時在用戶端上設定這些 HTTP 設定值以符合新的位址。

HTTP 伺服器 API 內含的一些進階組態設定無法透過 HttpCfg 取得。 這些設定會維護在登錄中,並套用至所有在系統中使用 HTTP 伺服器 API 的應用程式。 如需詳細瞭解這些設定,請參閱 IIS 的 Http.sys 登錄設定。 多數使用者不需要變更這些設定。

另請參閱