簡體   English   中英

如何在沒有虛擬目錄的情況下部署.NET Web應用程序

[英]How to deploy .NET web application without virtual directory

我有一個無法登錄服務器的托管帳戶,必須使用管理面板和FTP部署項目。

我有一個ASP.NET 2.0 Webforms Web應用程序,我需要將其部署到一個深層文件夾中,但是我不相信我有權在此文件夾上創建虛擬目錄。

通過進入並創建虛擬目錄,我可以在自己的服務器上正確部署此代碼/應用程序。 然后,該應用程序運行正常。 如果沒有虛擬目錄,則在要部署到的生產環境中會收到相同的錯誤。

它們都是解析器錯誤,例如

文件“ /Site.master”不存在。

無法創建類型“ myNamespace.webServiceName”。

我需要以其他方式構建它嗎? 發布不同嗎? 應該是網站而不是Web應用程序嗎? 我在Web服務器上的幾個文件夾中,這些文件夾肯定具有.NET,並且可以與其他應用程序一起使用。

基本上,您更改主機。 點。

任何提供ASP.NET的主機都應提供應用程序的創建功能,這是虛擬目錄的一種特殊形式。 致電他們的支持。 如果它們沒有幫助,請運行。 違反合約。

通常,您的托管服務提供商會提供一種通過某種管理面板將虛擬目錄轉換為應用程序的方法。 如果沒有,您可以嘗試致電並讓他們為您完成。

過去,我不得不與一些托管服務提供商打交道。 本質上,它們為您提供了一個虛擬目錄,其中包含用於dll的單個活動“ bin”文件夾。 問題在於,當您在Visual Studio項目的根目錄下構建Web應用程序時,所有路徑都完全不同。

解決該問題的一種方法是,從Visual Studio項目中生產服務器上的虛擬目錄的根開始,重建完全相同的文件夾結構。 管理項目(以及適當的名稱空間,如果您是純粹的程序員)會比較麻煩,但是您可以將編譯后的dll放在“ / bin”文件夾中,並將其余文件直接發布到正確的文件夾。 這樣,您的項目將知道生產服務器上存在的文件的完整路徑,因此使用Server.MapPath()將產生正確的結果。

另一種選擇是找到其他托管服務提供商(由TomTom建議),但這可能不可行,具體取決於您的情況。

我找到了一種在共享主機(1&1)中創建虛擬目錄的方法。 這是基於Web的文件瀏覽器中的一個隱藏的功能,我沒想到。

最終,如果不創建虛擬目錄,我將無法部署此功能,因此幸運的是,它們DID實際上具有此功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM