1. 程式人生 > >【踩坑經歷】一次Asp.NET小網站部署踩坑和解決經歷

【踩坑經歷】一次Asp.NET小網站部署踩坑和解決經歷

  2013年給1個大學的小客戶部署過一個小型的Asp.NET網站,非常小,用的sqlite資料庫,今年人家說要換臺伺服器,要重新部署一下,好吧,雖然早就過了服務時間,但無奈誰叫人家是客戶了,二話不說,上,原始碼和以前的檔案都有,部署還不是分分鐘的事情,開啟IIS掛上去就行了。誰知道,這個部署將近花了2天的時間。看看踩坑過程和解決方法。

  回來一看,9個反對,我心痛啊,這些童鞋,你們覺得這篇文章哪裡有問題?讓我辛辛苦苦寫篇文章,情何以堪。。。

1.居然拿XP系統做伺服器

  第一個坑其實和我沒關係,客戶以前用的伺服器是Windows Server 2003,對於小網站來說足夠了。這次換了伺服器,不知道哪根筋抽住了,直接安裝了一個XP系統,我遠端進去一看,當時看到XP,莫名的衝動,居然IIS都沒有,好吧,趕緊叫他們換。雖然XP也能安裝IIS,對這個客戶來說,無所謂,但拿XP來,的確是讓我震驚。

  客戶重新安裝了一個Windows Server 2003,然後我再去遠端部署。。。。還是一樣的有坑

2..NET4.0的專案出現找不到2.0版的“System.Web”

  IIS簡單的設定後,啟動,一直提示物件為Null,開啟日誌一看,一大堆的這個錯誤:

22:36:36.015 1 W - System.IO.FileNotFoundException: Could not load file or assembly 'System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. 系統找不到指定的檔案。
File name: 'System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
   at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
   at System.Reflection.Assembly.ReflectionOnlyLoad(String assemblyString)

  本來專案就是.NET 4.0的,以前的伺服器也執行好好的,根本沒改過,同樣的程式碼,出現這個錯誤。找不到2.0版本的System.Web,我雖然不懂,但這也太詭異了,我是無法解釋的。那就先 經過搜尋引擎 看看啥情況,經過一番360和百毒,在這個頁面找到點有用的資訊:

然後按照文章的方法,下載補丁。。。可惜本來網速就不快,開遠端,卡得要死,我就開啟QQ想把檔案傳過去。。。狗日的騰訊,打開個QQ,彈出個頁面,悲劇了,直接卡死。。好吧,啥都幹不了了。。。

最後只能叫客戶下載好,安裝上去。。。但是問題依舊。。。後來群裡有個朋友叫我在配置檔案加上下面一段:

<runtime>
    <assemblyBinding xmlns="
urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/> <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0"/> </dependentAssembly> </assemblyBinding> </runtime>

加上去,重啟了一下,經過一番折騰,好像好了一段時間,但是又報錯,Sqlite資料庫只讀,這個問題還是比較簡單,把資料庫所在資料夾開啟,給user使用者許可權就搞定了。

  但是還是報上面哪個System.Web的錯誤,。。。。好吧,已經很晚了,本來想安裝一個.net 2.0的環境看看是否有效,但無奈網速太坑爹,遠端都進不去。。。。我放棄了,第二天再說把,

3.一招見效,安裝.NET 2.0

  早上起來,速度快了一點,果斷下載一個.net 2.0的環境安裝上去,企鵝還是同樣的坑爹,開啟幾分鐘後才反應過來,只能忍,忍,忍,終於傳過去了,安裝好,,然後重啟了一下,就好了。

  搞不懂啥原因,其實早就想到安裝一個2.0的環境,但一直以為很容易就能解決,再加上坑爹的網速和企鵝的彈窗,死了好幾回。。。

  留個腳印把,搞不懂原理,請高手賜教。

相關推薦

經歷Asp.NET網站部署解決經歷

  2013年給1個大學的小客戶部署過一個小型的Asp.NET網站,非常小,用的sqlite資料庫,今年人家說要換臺伺服器,要重新部署一下,好吧,雖然早就過了服務時間,但無奈誰叫人家是客戶了,二話不說,上,原始碼和以前的檔案都有,部署還不是分分鐘的事情,開啟IIS掛上去就行了。誰知道,這個部署將近花了2天的時

心驚肉跳的伺服器誤刪檔案的恢復過程轉載、收藏 心驚肉跳的伺服器誤刪檔案的恢復過程

一次心驚肉跳的伺服器誤刪檔案的恢復過程 經歷了兩天不懈努力,終於恢復了一次誤操作刪除的生產伺服器資料。對本次事故過程和解決辦法記錄在此,警醒自己,也提示別人莫犯此錯。也希望遇到問題的朋友能找到一絲靈感解決問題。 事故背景 安排一個妹子在一臺生產伺服器上安裝Oracle,妹子

Java面試題完整的Http請求過程(非常詳細)

④ 如果在hosts檔案中也沒有找到對應的條目,瀏覽器就會發起一個DNS的系統呼叫,就會向本地配置的首選DNS伺服器(本地DNS伺服器,一般是電信運營商提供的,也可以使用像Google提供的DNS伺服器)發起域名解析請求(遞迴,通過的是UDP協議向DNS的53埠發起請求,這個請求是遞迴的請求,也就是運營商的D

運維實戰linux日誌分割之路——將日誌按照每小時進行分割,並按照“日期-小時”格式保存

linu 一次 圖片 威脅 rontab acc 記錄 進一步 bash 是這樣的,現在需要對nginx的access.log進行按照每小時進行分割,並且最好還要能夠以 “日期+時間”的形式,命名保存。 兩點,一個是按照每小時進行分割,一個是將日誌以“日期+時間”的形式進行

asp.net core3.1打造webapi開發框架的實踐

實踐技術看點 1、Swagger管理API說明文件 2、JwtBearer token驗證 3、Swagger UI增加Authentication 4、EntityFrameworkCore+MySQL 5、在.net core 3.1下使用Log4net 前言 元旦過後就沒什

記錄失敗的向git提交程式碼,解決的方法。(首次建立倉庫)

背景: 向git push程式碼(建立一個新的倉庫) 做法: 在github建立一個新的倉庫------>本地新建資料夾------->依次執行了下面的命令 git init git clone git checkout -b master

爬蟲系列 採集.NET WebForm網站的坎坷歷程

  今天接到一個活,需要統計人員的工號資訊,由於種種原因不能直接連資料庫 [無奈]、[無奈]、[無奈]。採取迂迴方案,寫個工具自動登入網站,採集使用者資訊。 這也不是第一次採集ASP.NET網站,以前採集的時候就知道,這種網站採集比較麻煩,尤其是WebForm的ASP.NET 網站,那叫一個費勁。

Windows下docker的安裝,將ASP.NET Core程序部署在LinuxDocker中

第一次 p地址 web程序 基礎 執行文件 docker安裝 ima rfi 如果 原文:Windows下docker的安裝,將ASP.NET Core程序部署在Linux和Docker中參考文章: https://www.cnblogs.com/jRoger/p/asp

JavaSpringMVC+ ibatis 配置多資料來源經歷

    問題 如何在一個web專案中使用兩個資料來源,並且不同的介面可以按需選擇資料庫。 方案 最開始的做法 因為我們的專案用的是ibatis作為ORM框架,在其配置檔案中可以配置資料來源資訊,原始配置如下: spring-application.xm

使用Jackson對Java物件序列化反序列化的經歷

背景大概是這樣,專案中的兩個服務A和B依賴了同一個common包的Java類,A對該類json序列化,而B對其反序列化。在一次common包升級過程中,這個Java類中增加了一個屬性,由於B其實用不到這個屬性,就只把A給升級打包了,這就導致B在反序列化時出現了一個異常:com.fasterxml.j

本人禿頂程式設計師FastDFS併發問題的排查經歷

←←←←←←←←←←←← 我都禿頂了,還不點關注! 前一段時間,業務部門同事反饋在一次生產伺服器升級之後,POS消費上傳小票業務偶現異常,上傳小票業務有重試機制,有些重試三次也不會成功,他們排查了一下沒有找到原因,希望架構部幫忙解決。 公司使用的是FastDFS來做的圖片伺服器,生產

PHP學習完整的HTTP請求所經歷的7個步驟

HTTP通訊機制是在一次完整的HTTP通訊過程中,Web瀏覽器與Web伺服器之間將完成下列7個步驟: 1、建立TCP連線 在HTTP工作開始之前,Web瀏覽器首先要通過網路與Web伺服器建立連線,該連線是通過TCP來完成的,該協議與IP協議共同構建Inte

OOM爬之旅

記一次 OOM 引起的爬坑之旅。 問題 測試反饋首頁在重新整理的時候有偶爾崩潰的情況,但是情況描述的不是很清楚,因為不是能一直復現的。 復現 找到測試妹子要來出問題的手機自測。根據測試的描述既然是在重新整理的時候崩潰,所以就一直重新整理首

程式人生:熬夜的經歷

最近因為加班多,所以經常性是12點回寢室,但是這種情況嚴重的影響了我的學習和生活,因為我每天得早上10點以後才能醒,這樣我每天就沒有足夠多的時間用來學習了。。。 最近的事情也是真的很多,比如這個那個的…好多的事 今天熬夜是因為我睡不著了,然後我就去大風吹燒烤

JavaSpringMVC+ Mybatis 配置多資料來源經歷

現在在維護的是學校的一款資訊服務APP的後臺,最近要開發一些新功能,其中一個就是加入學校電影院的線上購票。線上購票實際上已經有一套系統了,但是是外包給別人開發的,我們拿不到程式碼只能拿到資料庫,並且也不一定能很好的相容之前的程式碼,所以需要基於這個資料庫來進行新的開發。

EclipseEclipse外掛修改經歷

Eclipse版本:neo. 在大家都愛著IDEA的年代,我還是對eclipse情有獨鍾,畢竟免費,畢竟開源。 雖然有些bug操作我也神煩,例如空格補全。網上找到教程自己動手改了一把,雖然只有幾行程式碼,但改開原始碼真的爽歪歪啊。 文章的內容是參考引用,但是自己親

記我憤怒的通過灌水進行註冊北京進京證

gecko false ddl ddc 後臺運行 height kit 對手 狀態碼   背景:     “北京交警APP”可以網上辦理進京證,但是最近每次在該APP辦理進京證,總會提示“排隊人數過多”。很是苦惱,想一探究竟,到底是真的排隊過多,偶有成功,還是總會彈出該錯誤

(四)Asp.net web api中的-api的返回值

技術分享 要求 data 都是 blog pan odi handle 自己 void無返回值 IHttpActionResult HttpResponseMessage 自定義類型 我這裏並不想贅述這些返回類型, 可以參考博文http://blog.csdn.net/

權限管理學習 ASP.NET FORMS身份認證

datetime archive 什麽 void ole data nbsp onf href 【轉】權限管理學習 一、ASP.NET Forms身份認證 說明:本文示例使用的VS2017和MVC5。系統無論大小、牛逼或屌絲,一般都離不開註冊、登錄。那麽接下來我們就來分析下

個人小結資料庫效能優化問題

  需求場景:存在表t_result_changelog,表記錄了caseNo的相關資料,有些caseNo已經被刪除,但表中的資料沒有對應清理。 難點分析:判斷表中哪些資料已經被刪除,需要在對應版本的caseInfo_version中查詢   初次嘗試: 選擇