我們正在開發將在Windows Azure上託管的ASP.NET MVC Web應用程序。在開發過程中我們已經部署了幾次應用程序,沒有任何問題。實際上,這個過程的順利進行實際上令人驚訝。然後,當我們部署應用程序進行beta測試時,每當我們嘗試導航到網站的基本url時,我們都會收到403 Access Denied錯誤。如果我們嘗試導航到網站的各種控制器和操作之後,我們將獲得404資源找不到錯誤。Azure ASP.NET MVC Web.Config部署問題
我們注意到的另一個奇怪的事情是,我們將認證重定向頁面定義爲/ Access/SignIn而不是默認的帳戶/登錄。在開發機器上一切正常,我們被重定向到/ Access/SignIn,但是當發佈到Azure時,我們看到我們正被重定向到/帳戶/登錄。這讓我們認爲web.config文件存在問題。
我們在Azure部署上啓用了遠程桌面,只查看了web.config文件,發現它幾乎完全是空的!那裏唯一的設置是machineKey。我們手動將web.config從我們的開發機器中的一個複製到Azure虛擬機實例,並且從此開始一切工作。
什麼在世界上會使部署消滅web.config文件?我們如何防止這種情況發生,因爲我們無法在每次部署更新時手動更新web.config文件?
構建cspkg時是否正在執行任何配置轉換? – 2012-03-05 16:29:46
我會說實話,我甚至不知道這是可能的!除非我們意外地做了一些事情,否則我不會進行任何轉換。只需確認,如果沒有定義轉換,那麼web.config應該正確地部署到Azure中? – 2012-03-05 16:38:49
你是對的。 web.config應該照原樣複製。如果您導航到/bin/ /app.publish文件夾,則應找到上載到Azure的.cspkg文件。您可以通過給它擴展.zip來查看文件的內容。在cspkg中,Azure項目中引用的每個項目都有自己的zip文件(您還必須爲項目zip添加.zip擴展名)。這將允許您查看Azure包的內容,而無需上傳到Azure。這可以幫助解決這些問題。 –
2012-03-05 17:01:59