sql server+EF 部署重啟IIS時報錯:SqlClient.SqlException (0x80131904): 執行超時已過期。完成操作之前已超時或服務器未響應。 ---> System.ComponentModel.Win32Exception (0x80004005): 等待的操作過時。


經過同事排查發現問題源由

1)新增字段,並且該字段是非空。

2)新增字段的表數據量比較多,3千多萬條數據。

3)對象新增的屬性加了virtual 導致數據遷移超時,public virtual 類型 屬性名(而且這個類型是一個class類)。

非空字段EF新增過程必須對整個表添加一個默認值,由於表的數據比較多導致啟動過程超時。

解決辦法:

1)將字段類型加個?,表示字段為可空字段。

2)取消EF的數據自動遷移功能,手動加上新字段,再重啟即可。

3)先將字段設置為可空,部署完成之后再通過Sql語句把不可空字段加上默認值,然后把字段設置為不可空再重新部署。

第3種方法只是我的一個想法不還有待驗證。

在使用以上1和2兩個方法之前試過延長啟動過程的時長,在網上找了幾種方式都沒有效果,也許是沒有設置對吧。




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM