溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ASP.NET Visual Studio2010 發(fā)布Web網(wǎng)站問題詳解

發(fā)布時(shí)間:2020-05-29 23:56:46 來源:網(wǎng)絡(luò) 閱讀:1231 作者:我不會(huì)抽煙 欄目:編程語(yǔ)言

今天研究了一下如何發(fā)布web網(wǎng)站,之前總是沒耐心,遇到點(diǎn)問題就沒心情搞了,今天總算有點(diǎn)耐心搞明白了。其實(shí)遇到的問題還是挺多的,網(wǎng)上也沒有太全的解釋,所以結(jié)合自己還有別人的方法進(jìn)行一下總結(jié)。

環(huán)境:Win7系統(tǒng),Visual Studio 2010,IIS6.1

關(guān)于發(fā)布部分,大家可以查看此鏈接http://wanghaitaoboke.blog.163.com/blog/static/1708725122012527716235/,步驟寫的很詳細(xì)。補(bǔ)充一下:在其第二步【發(fā)布Web】部分,【目標(biāo)文件】處要選擇一個(gè)非項(xiàng)目工程所在文件夾。

如果大家各方面設(shè)置的都比較好,看完上面的文章你的網(wǎng)站就已經(jīng)發(fā)布了,在局域網(wǎng)內(nèi)已經(jīng)可以瀏覽了。不過,通常如果你是首次發(fā)布,應(yīng)該不會(huì)那么順利。重點(diǎn)在下面:

當(dāng)在地址欄中輸入設(shè)定的IP地址+端口號(hào)后可能出現(xiàn)以下幾種情況。

問題一,檢測(cè)到在集成的托管管道模式下不適用的ASP.NET設(shè)置。

ASP.NET Visual Studio2010 發(fā)布Web網(wǎng)站問題詳解

解決辦法:打開IIS,選擇應(yīng)用程序池,會(huì)看到右側(cè)的操作欄中有一項(xiàng)為【設(shè)置應(yīng)用程序池默認(rèn)設(shè)置】,點(diǎn)擊進(jìn)入,把【啟用32位應(yīng)用程序】置為true,把【托管管道模式】置為Classic。如圖

ASP.NET Visual Studio2010 發(fā)布Web網(wǎng)站問題詳解

問題二,由于Web服務(wù)器的“ISAPI 和 CGI 限制”列表設(shè)置,無(wú)法提供您請(qǐng)求的頁(yè)面。

ASP.NET Visual Studio2010 發(fā)布Web網(wǎng)站問題詳解

解決辦法:打開IIS,選擇根目錄,雙擊【ISAPI和CGI限制】這項(xiàng),然后將【ASP.NET v4.0.30319】這兩項(xiàng)均設(shè)置成允許。如圖

ASP.NET Visual Studio2010 發(fā)布Web網(wǎng)站問題詳解

ASP.NET Visual Studio2010 發(fā)布Web網(wǎng)站問題詳解

問題三,沒有可訪問的表。請(qǐng)確保在Global.asax中注冊(cè)了至少一個(gè)數(shù)據(jù)模型并啟用了基架,或者實(shí)現(xiàn)自定義頁(yè)面。

ASP.NET Visual Studio2010 發(fā)布Web網(wǎng)站問題詳解

解決辦法:打開工程,打開Global.asax文件,在RegisterRoutes 方法下我們可以看到下面內(nèi)容

            //                    重要: 數(shù)據(jù)模型注冊(cè) 
            // 取消對(duì)此行的注釋,為 ASP.NET Dynamic Data 注冊(cè) LINQ to SQL 模型。
            // 若要設(shè)置 ScaffoldAllTables = true,需符合以下條件,
            // 即確定希望數(shù)據(jù)模型中的所有表都支持基架(即模板)。若要控制各個(gè)表的
            // 基架,請(qǐng)為表創(chuàng)建分部類并將
            // [ScaffoldTable(true)] 特性應(yīng)用于分部類。
            // 注意: 請(qǐng)確保將“YourDataContextType”更改為應(yīng)用程序的數(shù)據(jù)上下文類的
            // 名稱。
            // model.RegisterContext(typeof(YourDataContextType), new ContextConfiguration() { ScaffoldAllTables = false });

把代碼段解注后,用自己創(chuàng)建的上下文替換YourDataContextType,把ScaffoldAllTables 置為true,我用的是Linq to Sql 寫的數(shù)據(jù)部分。修改后是這個(gè)樣子

            DefaultModel.RegisterContext(typeof(BmsContextDataContext), new ContextConfiguration() { ScaffoldAllTables = true });

修改之后,不要忘記重新再發(fā)布一次。

問題四,不能打開數(shù)據(jù)庫(kù),登錄失敗

ASP.NET Visual Studio2010 發(fā)布Web網(wǎng)站問題詳解

解決辦法:這個(gè)問題剛出來的時(shí)候有點(diǎn)懵,以為是IIS設(shè)置的問題,后來仔細(xì)一瞅,隱隱覺得似曾相識(shí),通過查看數(shù)據(jù)庫(kù)連接,發(fā)現(xiàn)果然是連接數(shù)據(jù)庫(kù)上出現(xiàn)了問題,跟IIS設(shè)置無(wú)關(guān)。而這個(gè)問題的解決方法在以前的一篇文章中詳細(xì)寫過,遇到這個(gè)問題的時(shí)候,都是這么解決的,大家可以看以下鏈接:http://zhouhongyu1989.blog.51cto.com/2931598/1390501

解決了以上幾個(gè)問題之后,再次登錄發(fā)布后的網(wǎng)站,就能正常訪問了,然后又在同局域網(wǎng)的其他機(jī)器上驗(yàn)證了一下,也沒什么問題。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI