ASP.NET Visual Studio2010 發布Web網站問題詳解

來源:互聯網
上載者:User

標籤:iis管理器   網站發布   vs2010   asp.net   web   

今天研究了一下如何發布web網站,之前總是沒耐心,遇到點問題就沒心情搞了,今天總算有點耐心搞明白了。其實遇到的問題還是挺多的,網上也沒有太全的解釋,所以結合自己還有別人的方法進行一下總結。

環境:Win7系統,Visual Studio 2010,IIS6.1

關於發布部分,大家可以查看此連結http://wanghaitaoboke.blog.163.com/blog/static/1708725122012527716235/,步驟寫的很詳細。補充一下:在其第二步【發布Web】部分,【目標檔案】處要選擇一個非項目工程所在檔案夾。

如果大家各方面設定的都比較好,看完上面的文章你的網站就已經發布了,在區域網路內已經可以瀏覽了。不過,通常如果你是首次發布,應該不會那麼順利。重點在下面:

當在地址欄中輸入設定的IP地址+連接埠號碼後可能出現以下幾種情況。

問題一,檢測到在整合的託管管道模式下不適用的ASP.NET設定。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/40/09/wKioL1POFKTgahLxAAeP-N2p45M282.jpg" title="QQ20140722132825.jpg" alt="wKioL1POFKTgahLxAAeP-N2p45M282.jpg" />

解決辦法:開啟IIS,選擇應用程式集區,會看到右側的操作欄中有一項為【設定應用程式集區預設設定】,點擊進入,把【啟用32位應用程式】置為true,把【託管管道模式】置為Classic。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/40/09/wKioL1POFL7iEPsNAAJZdLWZ2p0111.jpg" title="QQ20140722141349.jpg" alt="wKioL1POFL7iEPsNAAJZdLWZ2p0111.jpg" />

問題二,由於Web伺服器的“ISAPI 和 CGI 限制”列表設定,無法提供您請求的頁面。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/40/09/wKiom1POE9Oh4aDqAAjgluflWzE001.jpg" title="QQ20140722133016.jpg" alt="wKiom1POE9Oh4aDqAAjgluflWzE001.jpg" />

解決辦法:開啟IIS,選擇根目錄,雙擊【ISAPI和CGI限制】這項,然後將【ASP.NET v4.0.30319】這兩項均設定成允許。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/40/09/wKioL1POFQXTVRklAAMMOPZtvoo976.jpg" title="QQ20140722141722.jpg" alt="wKioL1POFQXTVRklAAMMOPZtvoo976.jpg" />

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/40/09/wKiom1POE_zzzQm6AAHXQ6mhlfM949.jpg" title="QQ20140722141949.jpg" alt="wKiom1POE_zzzQm6AAHXQ6mhlfM949.jpg" />

問題三,沒有可訪問的表。請確保在Global.asax中註冊了至少一個資料模型並啟用了基架,或者實現自訂頁面。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/40/09/wKiom1POFCHBOZUAAAgX0pU9_J8622.jpg" title="QQ20140722133404.jpg" alt="wKiom1POFCHBOZUAAAgX0pU9_J8622.jpg" />

解決辦法:開啟工程,開啟Global.asax檔案,在RegisterRoutes 方法下我們可以看到下面內容

            //                    重要: 資料模型註冊             // 取消對此行的注釋,為 ASP.NET Dynamic Data 註冊 LINQ to SQL 模型。            // 若要設定 ScaffoldAllTables = true,需符合以下條件,            // 即確定希望資料模型中的所有表都支援基架(即模板)。若要控制各個表的            // 基架,請為表建立部分類別並將            // [ScaffoldTable(true)] 特性應用於部分類別。            // 注意: 請確保將“YourDataContextType”更改為應用程式的資料內容類的            // 名稱。            // model.RegisterContext(typeof(YourDataContextType), new ContextConfiguration() { ScaffoldAllTables = false });

把程式碼片段解注後,用自己建立的上下文替換YourDataContextType,把ScaffoldAllTables 置為true,我用的是Linq to Sql 寫的資料部分。修改後是這個樣子

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

修改之後,不要忘記重新再發布一次。

問題四,不能開啟資料庫,登入失敗

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/40/09/wKiom1POFFvS3BfVABFLAhUKktA768.jpg" title="QQ20140722133934.jpg" alt="wKiom1POFFvS3BfVABFLAhUKktA768.jpg" />

解決辦法:這個問題剛出來的時候有點懵,以為是IIS設定的問題,後來仔細一瞅,隱隱覺得似曾相識,通過查看資料庫連接,發現果然是串連資料庫上出現了問題,跟IIS設定無關。而這個問題的解決方案在以前的一篇文章中詳細寫過,遇到這個問題的時候,都是這麼解決的,大家可以看以下連結:http://zhouhongyu1989.blog.51cto.com/2931598/1390501

解決了以上幾個問題之後,再次登入發布後的網站,就能正常訪問了,然後又在同區域網路的其他機器上驗證了一下,也沒什麼問題。

本文出自 “給我一根兒煙” 部落格,請務必保留此出處http://zhouhongyu1989.blog.51cto.com/2931598/1441389

ASP.NET Visual Studio2010 發布Web網站問題詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.