[原創]經曆:asp.net oracle 部署問題以及解決方案

來源:互聯網
上載者:User

標籤:blog   http   io   ar   os   sp   檔案   資料   on   

精簡的美麗......

一、環境
    開發環境
        win7 64bit
        Vs2010
        Oracle 11g r2 64bit
        <instantclient-basic-win32-11.2.0.1.0>
        
    部署環境
        winServer 2008 r2 64bit
        Oracle 11g r2 64bit
        <instantclient-basic-win32-11.2.0.1.0>
        iis7.5
    
二、部署問題及解決方案
    在VS項目上右鍵,選擇"發布"。發布方式為"檔案系統",指定目標位置。發布後找到目標檔案夾,拷貝所有檔案到伺服器IIS中建立的目錄裡。以http://伺服器ip:連接埠訪問可以開啟登入頁,點擊登入後顯示"無法顯示此頁"。
    百度"無法顯示此頁",結果尋找到無數條問答。挑選排名靠前的幾項試過之後問題依舊。
    無奈,Response.Write();Response.End();輸出判斷在執行到哪一步時出現上述問題。結果發現在執行Response.Redirect()時出現上述問題。Response.Write(跳轉url),發現目標路徑(...../index.aspx)中多了一個"/"。於是尋找擴充方法VirtualRoot(),發現在對page.Request.ApplicationPath取值時並沒有判斷其是否以"/"結尾(是否處於已部署環境),修改此方法後問題解決。
        public static string VirtualRoot(this Page page)
        {
            var result = page.Request.ApplicationPath;
            result = !result.IsNullOrEmpty() && result.EndsWith("/") ? result : result + "/";
            return result;
        }

    現在可以正常登入了。登入發突然跳出一個對話方塊。xmlhttpobject。檢查發現這是一個Ajax去訪問WebService時出錯列印的內容。錯誤碼是404。於是調試Ajax跟蹤發現,還是路徑問題。
    在開發環境中Js函數GetRootPath() /網上可以找到/可以正常返回虛擬路徑。就像函數本身注釋說的,它包含一個項目名稱,而我們部署後是沒有項目名稱這個路徑節點的,所以去掉項目名稱後可以正常返回虛擬路徑。然後再次登入後發現問題依舊。只是錯誤碼變理了500。繼續百度,在經過嘗試後發現更改Web.config,在system.web下增加
    <webServices >
        <protocols >
            <add name="HttpSoap"/>
            <add name="HttpPost"/>
            <add name="HttpGet"/>
            <add name="Documentation"/>
        </protocols>
    </webServices>
    後可以正常訪問WebService。理由是iis預設不允許訪問WebService(這是什麼規定啊)。
    好了,網站總算能開啟全部頁面了。心情愉悅啊。Oh,man.what is going on?為什麼會出現亂碼?難道資料庫字元集不對?趕快Plsql對比下兩個資料庫有什麼不同?結果,shit。一樣的。繼續百度,並且wen.lu。在被網路上各種解決方案轟炸了N遍之後,終於在 asp.net oracle 中文亂碼 解決方案 找到瞭解決方法。人家說,不用更改什麼字元集,要想讓你的oracle支援unicode只需要在連接字串裡加上Unicode=True就可以了。加上,ok,網頁是那讓人討厭的??總算沒有了。
    
    以上是我第一次asp.net網站部署經曆。留痕以備查閱。

[原創]經曆:asp.net oracle 部署問題以及解決方案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.