iis訪問(wèn)出現(xiàn)各種問(wèn)題(Vs訪問(wèn)正常)的部分處理方法詳細(xì)整理
今天有園友問(wèn)我一個(gè)問(wèn)題,問(wèn)題的大致意思就是新建了一個(gè)項(xiàng)目,在vs中調(diào)試都可以正常,但是在iis訪問(wèn)就會(huì)出現(xiàn)各種問(wèn)題。我個(gè)人認(rèn)為這個(gè)問(wèn)題都很容易解決,因?yàn)閳@友和我離的挺遠(yuǎn),只能通過(guò)QQ視頻來(lái)操作,但是我發(fā)現(xiàn)這種方式的溝通確實(shí)不太方便。索性把這些問(wèn)題整理一下,這樣更容易的可以處理方法說(shuō)明清楚。
因?yàn)槲夷壳暗捻?xiàng)目沒(méi)有這個(gè)問(wèn)題存在,所以我只能是新建一個(gè)簡(jiǎn)單的項(xiàng)目,然后在本地操作,盡量讓這個(gè)問(wèn)題出現(xiàn),也因?yàn)槲覐膩?lái)沒(méi)有整理過(guò)這方面額問(wèn)題,現(xiàn)在整理一下,然后再把我遇到的一些問(wèn)題整理一下,說(shuō)明一下如何解決這類(lèi)問(wèn)題。如果你還有一些問(wèn)題出現(xiàn),但是我現(xiàn)在沒(méi)有想到,那么請(qǐng)你給我留言,我來(lái)把這些問(wèn)題再做整理。
首先說(shuō)第一個(gè)問(wèn)題,數(shù)據(jù)庫(kù)訪問(wèn)出現(xiàn)的問(wèn)題??峙逻@個(gè)是最普遍的問(wèn)題了。因?yàn)檫@個(gè)操作實(shí)在很簡(jiǎn)單,具體的細(xì)節(jié)我就不細(xì)說(shuō)了,大家一眼就會(huì)明白。
首先我們新建了一個(gè)Web項(xiàng)目,在項(xiàng)目中添加了一個(gè)頁(yè)面叫做test.aspx,其中添加了一個(gè)按鈕,當(dāng)點(diǎn)擊了這個(gè)按鈕的時(shí)候會(huì)連接數(shù)據(jù)庫(kù)把數(shù)據(jù)庫(kù)中的數(shù)據(jù)提取出來(lái)顯示在界面上的gridView上。
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=DbLog;Integrated Security=True");
SqlCommand cmd = conn.CreateCommand();
try
{
string sql = "select top 10 * from log";
SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
DataTable dt = new DataTable();
sda.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}
catch (Exception ex)
{
string errmsg = ex.Message;
Response.Write(ex.Message);
}
}
如果連接數(shù)據(jù)庫(kù)出現(xiàn)異常的話,我們把異常信息直接打印出來(lái)。現(xiàn)在我們來(lái)看結(jié)果。
上面的這個(gè)圖是在vs中通過(guò)F5運(yùn)行之后得到的結(jié)果,很明顯 顯示結(jié)果是正確的,現(xiàn)在我們來(lái)看一下在iis下的顯示結(jié)果。什么,你不知道怎么放到IIS中訪問(wèn),那么好吧,我簡(jiǎn)略的敘述一下,在IIS中新建一個(gè)虛擬目錄或者網(wǎng)站,然后把項(xiàng)目的路徑填到里面就可以了。
在IIS中訪問(wèn)出現(xiàn)了問(wèn)題,顯示的不是數(shù)據(jù)庫(kù)中的數(shù)據(jù),而是在異常信息中顯示的異常信息。這是什么原因呢?看異常信息提示,打開(kāi)數(shù)據(jù)庫(kù)失敗,這是為什么呢?從這個(gè)原因我們可以考慮幾個(gè)方面。
- 數(shù)據(jù)庫(kù)的配置問(wèn)題,因?yàn)楸酒┛腿绻f(shuō)明數(shù)據(jù)庫(kù)的配置,那就會(huì)很長(zhǎng)了,所以簡(jiǎn)略的說(shuō)明一下,就是在數(shù)據(jù)庫(kù)中要把其中的幾個(gè)地方設(shè)置為啟用一般都可以解決。
2.如果不是數(shù)據(jù)庫(kù)的配置問(wèn)題,可能使我們打開(kāi)數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)密碼不正確。這個(gè)也要檢查一下,打開(kāi)數(shù)據(jù)庫(kù)的服務(wù)器是否正確,數(shù)據(jù)庫(kù)名是否正確,因?yàn)槲覀冞@個(gè)試驗(yàn)是通過(guò)Windows 驗(yàn)證訪問(wèn)的,所以不存在密碼錯(cuò)誤的問(wèn)題。
3.就是權(quán)限問(wèn)題。這個(gè)應(yīng)該是最主要的問(wèn)題存在,會(huì)令一些人瘋狂的地方了。其實(shí)就是我們做項(xiàng)目的時(shí)候控制用戶訪問(wèn)的道理是一樣的,數(shù)據(jù)庫(kù)禁止該用戶訪問(wèn)。
既然說(shuō)道權(quán)限問(wèn)題,那么我們就要說(shuō)一下,IIS運(yùn)行在哪個(gè)用戶下呢?我們以管理員登陸操作系統(tǒng)的奧,還是會(huì)出現(xiàn)錯(cuò)誤。其實(shí)IIS運(yùn)行在一個(gè)叫做iis_user的用戶下,可能不同的IIS版本下這個(gè)名稱(chēng)會(huì)有所不同,Network_services 在IIS中有時(shí)也需要,但是在IIS7 就是這個(gè)用戶,因?yàn)槲野惭b的就是IIS7.如果我們用的是Server 2003 系統(tǒng),那么在IIS上可以直接設(shè)置權(quán)限。因?yàn)槲以诠居玫木褪莝erver 2003,所以比較清楚。
首先上來(lái)就報(bào)錯(cuò)了。由于權(quán)限不足,那好,我們就給他增加權(quán)限。選擇項(xiàng)目文件夾,添加iis_users用戶,然后給他特定的權(quán)限就可以正常了。
可能有的園友要罵我了,怎么沒(méi)有看到那個(gè)數(shù)據(jù)庫(kù)無(wú)法登錄的錯(cuò)誤,我只能說(shuō)一句抱歉了,因?yàn)槲掖_實(shí)沒(méi)有模擬出來(lái)那個(gè)錯(cuò)誤。因?yàn)槲矣玫氖荳indows 7系統(tǒng),其實(shí)在出現(xiàn)配置錯(cuò)誤的時(shí)候我預(yù)想的應(yīng)該是出現(xiàn)哪個(gè)數(shù)據(jù)庫(kù)連接登錄錯(cuò)誤。等我模擬到那個(gè)登錄錯(cuò)誤的時(shí)候再拿出來(lái)。但是按照設(shè)置權(quán)限應(yīng)該可以解決所有的權(quán)限錯(cuò)誤問(wèn)題。
總結(jié)一下,iis登錄錯(cuò)誤的問(wèn)題很基本,只要我們善用搜索引擎,一般這類(lèi)問(wèn)題很容易解決。這篇播客是常識(shí)貼,知道的話很容易,但是如果找不到原因,也挺煩人的,故提出來(lái)大家一起分享。
相關(guān)文章
.Net Core WebApi部署在Linux服務(wù)器上的方法
這篇文章主要介紹了.Net Core WebApi部署在Linux服務(wù)器上的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03C#中Dictionary幾種遍歷的實(shí)現(xiàn)代碼
C#中Dictionary幾種遍歷的實(shí)現(xiàn)代碼,需要的朋友可以參考一下2013-02-02ASP.NET輸出PNG圖片時(shí)出現(xiàn)GDI+一般性錯(cuò)誤的解決方法
偶原來(lái)的用ASP.NET生成驗(yàn)證碼圖片時(shí)用的是JPG格式,今天想把它改成PNG格式的,結(jié)果就出現(xiàn)GDI+一般性錯(cuò)誤,查了N久資料,才發(fā)現(xiàn)解決的辦法,對(duì)分享此解決辦法的網(wǎng)友深表感謝2009-01-01asp.net中動(dòng)態(tài)改變網(wǎng)頁(yè)標(biāo)題的代碼
asp.net中動(dòng)態(tài)改變網(wǎng)頁(yè)標(biāo)題的代碼,需要的朋友可以參考下。2011-02-02asp.net GridView排序簡(jiǎn)單實(shí)現(xiàn)
使用javascript操作table排序才是實(shí)用的排序,這樣排序不怎么好,但是有時(shí)候可能會(huì)用來(lái),記錄一下。2009-12-12ASP.NET Core單文件和多文件上傳并保存到服務(wù)端的方法
這篇文章主要介紹了ASP.NET Core單文件和多文件上傳并保存到服務(wù)端的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04