win服務器 文件上傳下載出現“未指定的錯誤” 解決方法匯總


環境

  WIN平台IIS服務器

    經常出現於ASPX頁面 

匯總

  1.權限問題

  出現場景 : 基於ACCESS數據庫

    原因解析 :

    1.首先需要排除自身問題,例如建表使用關鍵字,格式錯誤,插入數據與數據庫類型不匹配等等

    2.TEMP權限檢查,當數據寫入數據庫的時候需要獲取當前服務器權限只有設置了IIS的temp寫入權限才能進行數據寫入

  解決辦法 :

    第一種解決方法:使用Ms Access里的“工具->數據庫實用工具->壓縮和修復數據庫”來修復db/global.asa。如果修復后還是出錯,請查看db目錄下是否有global.dbl文件,如果有請刪除,如無法刪除請結束服務器w3wp.exe進程(win2003)或Aspnet_wp.exe進程(win2000)后再刪除。
    說明:該種方法適用於數據庫設置錯誤問題導致數據寫入失敗,比較容易發現問題所在


    第二種解決辦法:
    設置Internet信息服務(IIS)管理器中的應用程序池,更改網站的程序池屬性見下圖:

    

    調整后即可解決問題。
    說明:標准的IIS服務器權限設置問題,一般企業有運維部門專門維護通常不會出現該情況


    第三種解決方法:
    其實只要很簡單的幾步:
    開始。。。運行。。。regsvr32 jscript.dll開始。。。
    運行。。。regsvr32 vbscript.dll開始。。。
    運行。。。iisreset 

    說明:簡單百度了一下 REGSVR32為系統注冊與反注冊工具,該工具主要用於修復系統文件比如上面所指regsvr32 jscript.dll 修復的是js文件本機注冊問題相當於重新修復引用的概念(不確定)它里面包含很多工具具體自行查看,最后一句IISRESET 重啟iis服務

  2.系統服務問題

    出現場景:各種文件上傳,EXCEL WORD 等等

    原因分析:win平台下上傳文件大多數分為兩種 OLDB 與NPOI

      OLDB:當文件上傳到服務器的時候服務器需要調用本身的解析器去讀取當前文件通過鏈接字符串形式獲取到數據從而反饋DataSet或者 DataTable數據,分析底層代碼如下  

    

    當進行鏈接時會直接拋出異常,當然上述截圖只是測試用

  解決辦法:

    首先,如果該情況發生在生產服務器上優先采用NPOI方式上傳不影響正常業務,其次發現問題跟蹤后對比服務器配置,未更改情況下對比win服務確定是否由於更新導致某些服務異常,最后嘗試解決。

  錯誤分析:

  

異常詳細信息: System.Data.OleDb.OleDbException: 未指定的錯誤 

[OleDbException (0x80004005): 未指定的錯誤] System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) +1131233 System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) +53 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) 


網上的解決方案很多,正確答案原來如此: 

在連接數據庫的時候是這么做的: 

public static OleDbConnection getxwdtConn() 

{ 

string connectionstring = WebConfigurationManager.ConnectionStrings["xwdtconnection"].ConnectionString; 

OleDbConnection con = new OleDbConnection(connectionstring); 

return con; 

} 

在MS sql或Access,中都不會有問題,調試也不會有問題。 

發布之后會有如上錯誤提示。 

是因為數據庫的操作中肯定有oledbdatadapter,或dataset,並且使用了con.open()和con.close(),。 

具體解決只需把open 和close刪掉就可以了,因為用的是斷開式連接。 

如果改用靜態變量的做法

 2018年4月25日更新

 win服務器發生該問題后,由於Oldb反饋為null 改為npoi 方式上傳 后更新npoi系統引用文件莫名其妙修復................若遇到該問題不妨一試,記得對比win服務

 

    

 


免責聲明!

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



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