共用方式為


ClickOnce 部署中的伺服器和用戶端設定問題

如果您在 Windows Server 上使用 Internet Information Services (IIS),而且您的部署包含 Windows 無法辨識的檔案類型,例如 Microsoft Word 檔案,IIS 會拒絕傳輸該檔案,而且您的部署不會成功。

此外,某些 Web 伺服器和 Web 應用程式軟體 (例如 ASP.NET) 包含您無法下載的檔案和檔案類型清單。 例如,ASP.NET 會阻止下載所有 Web.config 檔案。 這些檔案可能包含使用者名稱和密碼等敏感資訊。

雖然此限制應該不會造成下載核心 ClickOnce 檔案 (例如資訊清單和元件) 的問題,但此限制可能會阻止您下載包含在 ClickOnce 應用程式中的資料檔案。 在 ASP.NET 中,您可以移除禁止從 IIS 組態管理員下載這類檔案的處理常式,以解決此錯誤。 如需其他詳細資料,請參閱 IIS 伺服器檔。

部分網頁伺服器可能會封鎖副檔名為 .dll.config.mdf 的檔案。 基於 Windows 的應用程式通常包含具有其中一些副檔名的檔案。 如果使用者嘗試執行 ClickOnce 應用程式來存取網頁伺服器上封鎖的檔案,則會產生錯誤。 ClickOnce 預設會以 .deploy 副檔名發佈每個應用程式檔案,而不是解除封鎖所有副檔名。 因此,管理員只需要設定Web伺服器即可解除封鎖以下三個副檔名:

  • .application

  • .manifest

  • .部署

    不過,您可以清除 [發佈選項] 對話方塊上的 [使用 “.deploy” 副檔名] 選項來停用此選項,在此情況下,您必須設定網頁伺服器以解除封鎖應用程式中使用的所有副檔名。

例如,如果您使用的是尚未安裝 .NET Framework 的 IIS,或者您使用的是其他網頁伺服器 (例如 Apache),則必須設定 .manifest.application.deploy

ClickOnce 和安全通訊端層 (SSL)

ClickOnce 應用程式可以透過 SSL 正常運作,除非瀏覽器引發有關 SSL 憑證的提示。 當憑證發生問題時,例如當網站名稱不相符或憑證已過期時,可能會引發提示。 若要讓 ClickOnce 透過 SSL 連線運作,請確定憑證是 up-to-date,且憑證資料符合網站資料。

ClickOnce 和 Proxy 驗證

ClickOnce 從 .NET Framework 3.5 開始支援 Windows 整合式 Proxy 驗證。 不需要特定的 machine.config 指令。 ClickOnce 不支援其他驗證通訊協定,例如基本或摘要。

您也可以將 Hotfix 套用至 .NET Framework 2.0 以啟用此功能。 如需詳細資訊,請參閱 FIX:當您嘗試將您在 .NET Framework 2.0 中建立的 ClickOnce 應用程式安裝到設定為使用 Proxy 伺服器的用戶端電腦時,會出現錯誤訊息:「需要 Proxy 驗證」。

如需詳細資訊,請參閱 <defaultProxy> 元素 (網路設定)。

ClickOnce 和 Web 瀏覽器相容性

目前,只有在使用瀏覽器開啟部署資訊清單的 URL 時,才會啟動 ClickOnce 安裝。 只有在將 Internet Explorer 設定為預設網頁瀏覽器時,從其他應用程式(例如 Microsoft Office Outlook)啟動的部署 URL 才能成功啟動。

備註

如果部署提供者不是空白或已安裝 Microsoft .NET Framework Assistant 擴充功能,Mozilla Firefox 將獲得支援。 此延伸模組隨 .NET Framework 3.5 SP1 封裝。 對於 XBAP 支持,NPWPF 插件會在需要時激活。

透過瀏覽器指令碼啟動 ClickOnce 應用程式

如果您已開發使用作用中腳本啟動 ClickOnce 應用程式的自訂網頁,您可能會發現該應用程式無法在某些電腦上啟動。 瀏覽器包含自動 提示檔案下載等設定,這會影響此行為。 此瀏覽器設定通常列在 「下載」 類別下方,預設為啟用。 停用此設定時,任何以程式設計方式啟用 ClickOnce 應用程式的嘗試都會遭到封鎖 (例如,將其 URL 指派給 document.location 屬性) 。 在此情況下,使用者只能透過使用者起始的下載來啟動應用程式,例如,按一下設定為應用程式 URL 的超連結。

其他伺服器設定問題

需要管理員權限

如果您使用 HTTP 發佈,則必須具有目標伺服器的管理員權限。 IIS 需要此許可權層級。 如果您不使用 HTTP 發佈,則只需要目標路徑的寫入權限。

伺服器驗證問題

當您發佈至已關閉「匿名存取」的遠端伺服器時,您會收到下列警告:

"The files could not be downloaded from http://<remoteserver>/<myapplication>/.  The remote server returned an error: (401) Unauthorized."

備註

如果網站提示輸入預設認證以外的認證,您可以讓 NTLM (NT 挑戰-回應) 驗證正常運作,而且在安全性對話方塊中,系統提示您是否要儲存提供的認證以供未來工作階段使用時,您可以按兩下 [ 確定 ]。 不過,此因應措施不適用於基本驗證。

使用第三方網頁伺服器

如果您要從 IIS 以外的 Web 伺服器部署 ClickOnce 應用程式,如果伺服器傳回關鍵 ClickOnce 檔案 (例如部署資訊清單和應用程式資訊清單) 的不正確內容類型,您可能會遇到問題。 若要解決此問題,請參閱網頁伺服器的說明文件,瞭解如何將新的內容類型新增至伺服器,並確定下表中列出的所有副檔名對應都已就緒。

副檔名 內容類型
.application application/x-ms-application
.manifest application/x-ms-manifest
.deploy application/octet-stream
.msu application/octet-stream
.msp application/octet-stream

ClickOnce 和映射的磁碟機

如果您使用 Visual Studio 發佈 ClickOnce 應用程式,則無法將對應的磁碟驅動器指定為安裝位置。 不過,您可以使用資訊清單產生器和編輯器 (Mage.exe 和 MageUI.exe),來修改 ClickOnce 應用程式,以從映射磁碟機進行安裝。 如需詳細資訊,請參閱 Mage.exe (資訊清單產生和編輯工具)MageUI.exe (資訊清單產生和編輯工具、圖形用戶端)。

安裝應用程式不支援 FTP 通訊協定

ClickOnce 支援從任何 HTTP 1.1 Web 伺服器或檔案伺服器安裝應用程式。 FTP(檔案傳輸通訊協定)不支援安裝應用程式。 您只能使用 FTP 來發佈應用程式。 下表總結了這些差異:

URL 類型 Description
ftp:// 您可以使用此通訊協定發佈 ClickOnce 應用程式。
http:// 您可以使用此通訊協定來安裝 ClickOnce 應用程式。
https:// 您可以使用此通訊協定來安裝 ClickOnce 應用程式。
file:// 您可以使用此通訊協定來安裝 ClickOnce 應用程式。

Windows 防火牆

根據預設,Windows 會啟用 Windows 防火牆。 如果您在已安裝 Windows 的電腦上開發應用程式,您仍然可以從執行 IIS 的本機伺服器發佈和執行 ClickOnce 應用程式。 不過,除非您開啟 Windows 防火牆,否則您無法從另一部電腦存取執行 IIS 的伺服器。 如需管理 Windows 防火牆的指示,請參閱 Windows 說明。

Windows Server:啟用 FrontPage 伺服器延伸模組

需要 Microsoft 的 FrontPage Server Extensions,才能將應用程式發佈至使用 HTTP 的 Windows 網頁伺服器。

根據預設,Windows Server 未安裝 FrontPage Server 延伸模組。 如果您想要使用 Visual Studio 發佈至搭配 FrontPage Server Extensions 使用 HTTP 的 Windows Server Web 伺服器,您必須先安裝 FrontPage Server Extensions。 您可以使用 Windows Server 中的 [管理您的伺服器] 管理工具來執行安裝。

Windows Server:鎖定的內容類型

Windows Server 2003 上的 IIS 會鎖定所有檔案類型,但某些已知內容類型 (例如, .htm.html.txt等) 除外。 若要使用此伺服器啟用 ClickOnce 應用程式的部署,您必須變更 IIS 設定,以允許下載 .application.manifest 類型的檔案,以及應用程式使用的任何其他自訂檔案類型。

如果您使用 IIS 伺服器進行部署,請執行 inetmgr.exe 並新增預設網頁的檔案類型:

  • 針對 .application.manifest 副檔名,MIME 類型應該是 “application/x-ms-application”。對於其他檔案類型,MIME 類型應為「application/octet-stream」。

  • 如果您建立副檔名為「<em>」且 MIME 類型為「application/octet-stream」的 MIME 類型,則允許下載未封鎖檔案類型的檔案。 (不過,無法下載封鎖的檔案類型,例如 *.aspx*.asmx

    如需在 Windows Server 上設定 MIME 類型的特定指示,請參閱 如何將 MIME 類型新增至網站或應用程式

內容類型映射

透過 HTTP 發佈時, .application 檔案的內容類型 (也稱為 MIME 類型) 應該是 “application/x-ms-application”。如果您在伺服器上安裝了 .NET Framework 2.0,則會自動為您設定。 如果未安裝,則必須為 ClickOnce 應用程式 vroot (或整個伺服器) 建立 MIME 類型關聯。

如果您使用 IIS 伺服器進行部署,請執行 inetmgr。exe 並新增 .application 副檔名的新內容類型 “application/x-ms-application”。

HTTP 壓縮問題

使用 ClickOnce,您可以執行使用 HTTP 壓縮的下載,HTTP 壓縮是一種 Web 伺服器技術,它使用 GZIP 演算法來壓縮資料流,然後再將資料流傳送到用戶端。 用戶端(即 ClickOnce)會在讀取檔案前解壓縮資料流。

如果您使用 IIS,您可以輕鬆啟用 HTTP 壓縮。 但是,當您啟用 HTTP 壓縮時,它只會針對某些檔案類型(即 HTML 和文字檔案)啟用。 若要啟用元件 (.dll)、XML (.xml)、部署資訊清單 (.application) 和應用程式資訊清單 (.manifest) 的壓縮,您必須將這些檔案類型新增至 IIS 要壓縮的類型清單。 在將檔案類型新增至部署之前,只會壓縮文字和 HTML 檔案。

如需 IIS 的詳細指示,請參閱 如何指定 HTTP 壓縮的其他檔類型