Pages - Menu

2015年12月25日 星期五

MVC 發布到IIS的錯誤解決方式

vs 2015 發佈到IIS的錯誤

要發佈的時候一直出現錯誤訊息如下:


1.Web Deployment 工作失敗。((2015/11/16 上午 11:17:14) 在遠端電腦上處理要求時發生錯誤。)

(2015/11/16 上午 11:17:14) 在遠端電腦上處理要求時發生錯誤。
無法執行作業。請聯絡伺服器系統管理員,檢查授權和委派設定。
2.『Microsoft.ACE.OLEDB.12.0 提供者並未登錄到本機電腦上
3.『發布後原本的資料庫被移除』
4.『log4net無法執行』
5. Log資料夾權限沒設定
6.無法載入檔案或組件 'LinqToExcel' 或其相依性的其中之一。 試圖載入格式錯誤的程式。
7.Web Deployment在遠端電腦上處理要求失敗。



1.Web Deployment 工作失敗。((2015/11/16 上午 11:17:14) 在遠端電腦上處理要求時發生錯誤。)

(2015/11/16 上午 11:17:14) 在遠端電腦上處理要求時發生錯誤。
無法執行作業。請聯絡伺服器系統管理員,檢查授權和委派設定。
設定檔改了又改,改了又改都是一直出現錯誤。還懷疑是IIS的網站設定錯誤。

此時心想,好吧,我拿以前得來用先看看能不能發行成功。

結果………狀況依舊。也不能發行。WTF!?



最後跑去查server的事件紀錄錯誤

在系統管理事件 看到了幾句關鍵話


1.誤詳細資料: Microsoft.Web.Delegation.DeploymentAuthorizationException: 無法登入使用者 '.\WDeployConfigWriter'。 ---> System.Runtime.InteropServices.COMException: 此帳戶的密碼已到期。 (發生例外狀況於 HRESULT: 0x80070532)



好吧,真相大白。直接把WDeployConfigWriter 帳號設定成永久有效…
然後過了。還我兩天的青春……

再來是今天的,
今天要將MVC發布到RD伺服器上面同樣發生問題,
處理方式跟上面的一樣。不過多了一另一個也是WDeployXXXX的使用者也是密碼到期。


再來是使用excel要匯入資料的時候,首先碰到的錯誤
2.『Microsoft.ACE.OLEDB.12.0 提供者並未登錄到本機電腦上』
查了又查都說要安裝『Microsoft Access Database Engine 64bit
有一點要特別注意的是,你電腦如果是32bit就要裝32bit的版本,
但server 2012 64bit可以裝 32bit的版本,所以一直鬼打牆。由於32與64不能共存,
故安裝64前須將32bit的版本移除。

3.『發布後原本的資料庫被移除
使用codefirst發布的時候,如果需保留原始資料,需將『執行Code First移轉』打勾。
但此時原本資料庫的欄位並沒有同時移到發布的資料庫上面,我想也是因為很少有人會將IIS以及資料庫掛在同一台上面。目前尚未找到好的解法,能夠發布網站的時候,同時更新資料庫欄位。

4.『log4net突然無法執行
在global.ascax.cs底下有當應用程式執行時預先載入log4net的設定檔,
而在開發環境下log4net的設定檔是指向 ~/log4net.config,但發行後此檔案是放在bin的資料夾內,故需將檔案疑出來或是直接更改設定檔位置。

5.Log資料夾權限沒設定,需給虛擬帳戶 權限  詳情請看保哥的文章

6.有使用 LinqToExcel 然後出現 『無法載入檔案或組件 'LinqToExcel' 或其相依性的其中之一。 試圖載入格式錯誤的程式。』,將linqToExcel移除後重新安裝64bit版,詳情也是 保哥的文章

7.到事件檢視器 ===>應用程式及服務紀錄檔====>找到Microsoft Web Deploy 可以看到詳細的錯誤內容,但是出現錯誤是『嘗試執行未經授權的作業』,找了一下,發現網站的資料夾有上傳上去,但是網站底下的檔案沒有上傳,因而發現是因為我建立的資料夾沒有將發行者的帳號加進去,導致不能新增。但上傳的資料夾,因為是自己上傳的所以可以新建。



沒有留言:

張貼留言