WCF 服務和客戶端可以通過 HTTP 和 HTTPS 進行通信。 HTTP/HTTPS 設置是使用 Internet Information Services (IIS) 或命令行工具設定的。 當 WCF 服務託管在 IIS 下時,可以在 IIS 中配置 HTTP 或 HTTPS 設置(使用 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\user 帳戶的指定 URL 命名空間添加 URL 預留。 有關使用 netsh 命令的更多資訊,請鍵入 netsh http add urlacl /?
命令提示符並按 Enter。
配置防火牆例外
當自承載通過 HTTP 通信的 WCF 服務時,必須向防火牆配置添加例外,以允許使用特定 URL 的入站連接。
配置 SSL 證書
安全套接字層 (SSL) 協定使用客戶端和伺服器上的證書來儲存加密密鑰。 伺服器在建立連接時提供其SSL證書,以便客戶端可以驗證伺服器身份。 伺服器還可以從客戶端請求證書,以提供連接雙方的相互身份驗證。
證書根據連接的IP位址和埠號存儲在集中存儲中。 特殊IP位址0.0.0.0.0與本地電腦的任何IP位址匹配。 請注意,證書存儲不會根據路徑區分 URL。 具有相同IP位址和埠組合的服務必須共享證書,即使服務的URL中的路徑不同也是如此。
有關分步說明,請參閱 如何:使用 SSL 證書配置埠。
配置IP偵聽清單
HTTP 伺服器 API 僅在用戶註冊 URL 後綁定到 IP 位址和埠。 默認情況下,HTTP 伺服器 API 綁定到電腦所有 IP 位址的 URL 中的埠。 如果不使用 HTTP 伺服器 API 的應用程式之前已綁定到 IP 位址和埠的組合,則會發生衝突。 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 Server API 的系統上運行的所有應用程式。 有關這些設置的資訊,請參閱 IIS 的Http.sys 註冊表設置。 大多數使用者不需要更改這些設置。