在普通檔案夾下部署ASP.NET程式的方法

來源:互聯網
上載者:User

在普通檔案夾下部署ASP.NET程式的方法

問題描述:

一個asp.net的web程式(路徑為d:\proj\WebTest),如果使用一個虛擬目錄(例如:virtualapp)指向它(d:\proj\WebTest),通過http://localhost/virtualapp/index.aspx可以正常訪問。但是如果把web程式下移到另外一個檔案夾中(d:\proj\WebTest\abc),
http://localhost/virtualapp/abc/index.aspx,則不能正常訪問。出現以下錯誤提示。

 

“/virtualapp”應用程式中的伺服器錯誤。

--------------------------------------------------------------------------------

 

配置錯誤 

說明: 在處理向該請求提供服務所需的設定檔時出錯。請檢查下面的特定錯誤詳細資料並適當地修改設定檔。 

 

分析器錯誤資訊: 在應用程式層級以外使用註冊為 allowDefinition='MachineToApplication' 的節是錯誤的。導致該錯誤的原因可能是在 IIS 中沒有將虛擬目錄作為應用程式進行配置。

 

源錯誤: 

 

 

行 23:           “Forms”、“Passport”和“None”

行 24:     -->

行 25:     <authenticationmode="Windows" /> 

行 26: 

行 27: 

 

源檔案:E:\aspnet\WebApplicationCSharp\web.config   行: 25

 

如果在web.config檔案把<authenticationmode="Windows" />注釋掉,則又提示web程式編譯之後產生的dll檔案找不到(CodeFile方式)或相應的頁面代碼檔案不能讀入(CodeBehind方式)的錯誤。

難道asp.net程式就必須部署到虛擬目錄中嗎?如果是購買的服務空間,空間服務商又不放開多個虛擬目錄,那在一個網站上該如何部署多個應用呢?

 

發生原因:

虛擬目錄的實質就是“應用程式定義域”。應用程式在執行的時候,會到執行目錄下的bin目錄中去尋找執行代碼。由於bin目錄在d:\proj\WebTest\abc目錄下,而應用程式的執行目錄是d:\proj\WebTest,所以才會出現dll找不到的錯誤。

 

解決辦法:

把應用的bin目錄移動到應用程式的執行目錄中,如果是多個web應用則需要注意dll檔案的命名衝突問題。具體到該問題,就是把d:\proj\WebTest\abc目錄下的bin目錄複寫到d:\proj\WebTest目錄下,問題即可解決。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.