2012-06-15 42 views
5

部署到Azure後,我不斷收到服務器錯誤 - 應用程序無法運行。所以我在這個實例中做了一個遠程桌面,發現web.config完全被徹底檢查了......發生了什麼事情?我認爲web.config是按原樣打包的?相反,整個配置已被替換。當我用原始的,未改變的,正確的配置替換「新」版本時,我的應用程序按預期工作。在Azure部署過程中,Web.config發生了巨大變化

首先,這是怎麼回事?我究竟做錯了什麼?這種方式我可以理解並且不會在將來複制這個。

其次,我該如何阻止這種行爲?我想部署原始的web.config - 不是一些任意的冒名頂替者。謝謝!

+0

你可以發表這兩個版本的一些例子嗎?調試/發佈是否有Web.config覆蓋?你有參數轉換配置嗎? (像http://msdn.microsoft.com/en-us/library/dd465326%28VS.100%29.aspx) –

+0

是的,我試圖張貼配置的圖像,但我的「聲譽」太低。我沒有重疊或轉換(尤其是因爲這個問題)。圖片(來自同一個問題)在這裏:http://social.msdn.microsoft.com/Forums/en-US/windowsazuredevelopment/thread/2b5d705e-ffd5-4022-b32d-c67c0fe518cf。 –

+0

你可以提取天藍色的包來驗證在構建/包裝過程中發生的變化嗎?如果您在本地構建+在Azure模擬器中運行相同的配置,則文件保持不變? –

回答

2

基於dunnry的解壓cskpkg文件的建議,我注意到web.config甚至從未被打包 - 所以Azure必須已經根據需要創建了一個基本的(沒有警告我!?!?)。經過一番調查後,我發現這塊金塊(從another StackOverflow question addressing deployment issues):

原來web.config文件甚至沒有包含在部署包中。不知何故,web.config文件的BuildAction從內容更改爲無。

將BuildAction更改回「內容」後,我的部署現在按預期工作。

2

除非您指定了一個轉換(使用標準的,內置的web.config.debug和.release),否則它不會轉換任何用戶設置。在某個時間點,它確實轉換了machineKey設置,以便您的Web角色能夠在Web場景中運行(如果沒有,負載均衡器將無法工作)。我確信它仍然可以做到這一點,但它現在可以在machine.config級別執行它(只留下web.config)。我有一段時間沒有檢查過,所以不知道它現在做了什麼。

簡單的方法來檢查將部署什麼是隻打包您的cskpkg並打開它作爲一個.zip文件。裏面將是另一個文件,其中包含您的網絡角色名稱。再次打開.zip,你應該看到你的網站都打包好了。檢查web.config並確保它是你所需要的。如果不是,那麼在這裏發佈你認爲不應該改變的內容。

+0

謝謝。當我按照你的建議解壓cskpkg時,我發現web.config文件在'sites/0'目錄完全**失蹤**。任何想法這裏發生了什麼? –

+2

啊......發現解決方案。使用你的建議作爲出發點和實現web.config失蹤,發現這個塊(「不知何故的web.config文件的BuildAction從內容更改爲無。」)從[這個問題](http:// stackoverflow .COM /問題/ 9570016/Azure的ASP淨MVC-Web的配置部署-問題)。現在,部署按預期工作!再次感謝。 –

相關問題