台灣最具影響力的-資訊專家社群 - 讓您成為最有價值的IT專業人才
線上人數
2906
 
會員總數:229120
接案會員:6761
文章總數:2320
討論主題:175182
歡迎您免費加入會員
討論區列表 >> ASP.NET >> '/' 應用程式中發生伺服器錯誤

[變換順序]
[我要回覆]
1


回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
'/' 應用程式中發生伺服器錯誤
價值 : 20 QP  點閱數:16274 回應數:13

點圖分享到Plurk吧!
樓主

rokedr
初學者
5 5
307 12
發送站內信

大家好,我是.NET的初學者,這個「更新」的問題困擾我好久,一直沒辦法成功。

按下更新後,它會跑出下列的錯誤訊息:

執行階段錯誤
描述: 伺服器上發生應用程式錯誤。此應用程式的目前自訂錯誤設定因安全性考量,防止他人從遠端看見應用程式錯誤的詳細資訊。然而,可以使用本機伺服器電腦上的瀏覽器檢視。

詳細資料: 若要在遠端電腦檢視此特定錯誤訊息的詳細資訊,請於目前 Web 應用程式根目錄內的 "web.config" 組態檔中建立 <customErrors> 標記。然後將 <customErrors> 標記的 "mode" 屬性設為 "Off"。

<!-- Web.Config 組態檔 -->

<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>


注意: 可以藉由修改應用程式 <customErrors> 組態標記的 "defaultRedirect" 屬性,使其指向自訂錯誤頁面的 URL,以便使用自訂錯誤頁面取代您目前看到的錯誤頁面。
<!-- Web.Config 組態檔 -->

<configuration>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration>


我的程式碼如下:

<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data.OleDb" %>
<%@ Import Namespace="System.Data" %>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

Dim Conn As OleDbConnection
Dim Cmd As OleDbCommand
Dim Rd As OleDbDataReader
Dim SQLp As String
Dim SQLs As String
Dim SQLu As String
Dim Provider As String = "Provider=Microsoft.Jet.OLEDB.4.0"
Dim Database As String = "Data Source=" & Server.MapPath("../teacher.mdb")

Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)

Call OpenDataBase_And_BindToDataGrid()

End Sub

Sub OpenDataBase_And_BindToDataGrid()

If Not IsPostBack then
Conn = New OleDbConnection(Provider & ";" & DataBase)
Conn.Open()
SQLp = "Select tea_id, tea_name From full_tea"
Cmd = New OleDbCommand(SQLp, Conn)
Rd = Cmd.ExecuteReader()

While Rd.Read()
DropDownList1.Items.Add("(" & Rd.Item("tea_id") & ")" & "/" & Rd.Item("tea_name"))
End While

'DropDownList1.DataSource = Rd
'DropDownList1.DataTextField = "tea_name"
'DropDownList1.DataValueField = "tea_id"
'DropDownList1.DataBind()

'Cmd.Cancel()
'Rd.Close()
Conn.Close()
End If

End Sub

Sub sent(ByVal sender As Object, ByVal e As EventArgs)

Call Post_Data()

End Sub

Sub Post_Data()

Dim Adpt As OleDbDataAdapter
Dim Ds As DataSet
Conn = New OleDbConnection(Provider & ";" & DataBase)
Conn.Open()

SQLs = "Select id, book From book where tea_id='" & Mid(DropDownList1.Text.Trim(), 2, 4) & "'"
Adpt = New OleDbDataAdapter(SQLs, Conn)
Ds = New DataSet()
Adpt.Fill(Ds, "book")

Grid1.DataSource = Ds.Tables("book").DefaultView
Grid1.DataBind()

Conn.Close()

End Sub

Sub back(ByVal sender As Object, ByVal e As EventArgs)

Response.Redirect("../admin.aspx")

End Sub

Sub EditData(sender As Object, e As DataGridCommandEventArgs)

Grid1.EditItemIndex = e.Item.ItemIndex
Call Post_Data()

End Sub

Sub CancelEdit(sender As Object, e As DataGridCommandEventArgs)

Grid1.EditItemIndex = -1
Call Post_Data()

End Sub

Sub UpdateData(sender As Object, e As DataGridCommandEventArgs)

Conn = New OleDbConnection(Provider & ";" & DataBase)
Conn.Open()

SQLu = "Update book Set book=@book Where id=@key"
Cmd = New OleDbCommand(SQLu, Conn)

Cmd.Parameters.Add( New OleDbParameter("@id", OleDbType.Integer))
Cmd.Parameters.Add( New OleDbParameter("@book", OleDbType.WChar))
Cmd.Parameters.Add( New OleDbParameter("@Key", OleDbType.Integer))

Dim TB As TextBox
TB = e.Item.FindControl("book") ' book TextBox


Cmd.Parameters("@Key").Value = Grid1.DataKeys(e.Item.ItemIndex)

Cmd.Parameters("@book").Value = TB.Text

Cmd.ExecuteNonQuery()

Conn.Close()

Grid1.EditItemIndex = -1
Call Post_Data()
End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
<!--
.style1 {
font-family: "微軟正黑體";
font-weight: bold;
color: #993300;
font-size: 20px;
}
-->
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<table width="780" align="center" style="border-style: groove; border-width: thin">
<tr>
<td align="center" valign="middle"><span class="style1">修改「專書」</span></td>
</tr>
<tr>
<td><hr /></td>
</tr>
<tr>
<td align="center" valign="middle"><asp:DropDownList ID="DropDownList1" runat="server" ></asp:DropDownList>
&nbsp; <asp:Button ID="Button1" runat="server" Text="送出" OnClick="sent" /></td>
</tr>
<tr>
<td align="center" valign="middle"><hr /></td>
</tr>
<tr>
<td align="center" valign="middle">
<asp:DataGrid ID="Grid1" runat="server"
HeaderStyle-BackColor="#666666"
HeaderStyle-ForeColor="#FFFFFF"
AlternatingItemStyle-BackColor="#FFFFCC"
BorderColor="#000000"
width="100%"
cellpadding="2"
cellspacing="0"
OnEditCommand="EditData"
OnUpdateCommand="UpdateData"
OnCancelCommand="CancelEdit"
Datakeyfield="id"
AutoGenerateColumns="false">

<columns>
<asp:EditCommandColumn
HeaderText="修改" ItemStyle-wrap="false" EditText="編輯" UpdateText="更新" CancelText="取消" />
<asp:BoundColumn DataField="id" HeaderText="編號" ReadOnly="true" />
<asp:TemplateColumn HeaderText="內容">
<ItemTemplate>
<asp:Label runat="server"
Text='<%# Container.DataItem("book") %>'/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" id="TB" Size=110
Text='<%# Container.DataItem("book") %>'/>
</EditItemTemplate>
</asp:TemplateColumn>
</columns>

</asp:DataGrid>
</td>
</tr>
<tr>
<td align="center" valign="middle">&nbsp;</td>
</tr>
<tr>
<td align="center" valign="middle"><asp:Button ID="Button2" runat="server" Text="返回" onclick="back" /></td>
</tr>
</table>
</div>
</form>
</body>
</html>
本篇文章發表於2010-01-24 21:55
什麼是iT Power資訊報 新手會員瞧一瞧
1樓
不錯的參考

Phil
捐贈 VP 給 Phil 檢舉此回應
先將web.config中的
customErrors mode="Off"
看看真正錯誤的訊息是什麼


本篇文章回覆於2010-01-24 22:14
--未登入的會員無法查看對方簽名檔--
2樓
不錯的參考

流雲繫絮
捐贈 VP 給 流雲繫絮 檢舉此回應
您好

下次發文的時候請利用



這個按鈕,才能讓你的程式碼更清楚好看. 不然你這樣一貼花花綠綠的誰會想幫你看呢..


先像一樓說的,把自設錯誤參數關閉,真正的錯誤訊息才會出來

再把錯誤訊息po出來,這樣會更快獲得解答


本篇文章回覆於2010-01-24 22:33
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

rokedr
檢舉此回應




本篇文章回覆於2010-01-25 00:12
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

rokedr
檢舉此回應
Sorry!上一篇是想說測試看看,然後再刪掉,結果刪不掉… @@a


本篇文章回覆於2010-01-25 00:15
--未登入的會員無法查看對方簽名檔--
5樓
最有價值解答

Allen
捐贈 VP 給 Allen 檢舉此回應
將103行
Cmd.Parameters.Add( New OleDbParameter("@id", OleDbType.Integer))
刪掉試試看


本篇文章回覆於2010-01-25 08:29
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

rokedr
檢舉此回應
我將103行刪掉,結果也是一樣耶!

而且在web.config檔案裡也沒有看到customErrors mode="Off"

web.config裡的內容只有這樣,我該怎麼修改呢?謝謝!




本篇文章回覆於2010-01-25 11:48
--未登入的會員無法查看對方簽名檔--
7樓
不錯的參考

SAM
捐贈 VP 給 SAM 檢舉此回應
你的SERVER上真的有D:\access\aseip\folder\full_teacher\teacher.mdb這個檔案嗎?
有沒有可能是你沒有佈署到真實環境?


本篇文章回覆於2010-01-25 13:23
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

rokedr
檢舉此回應
版主sam您好,確實有這個檔案存在。


本篇文章回覆於2010-01-25 14:23
--未登入的會員無法查看對方簽名檔--
9樓
不錯的參考

擺渡人
捐贈 VP 給 擺渡人 檢舉此回應
web.config裡應該會有customErrors mode的設定,只是預設值是放在註解裡,請用搜尋找到customErrors mode,將那一段文字複製到<!-- xxxx -->之外,在修改成為customErrors mode="off",然後執行完將錯誤訊息在貼出來。


本篇文章回覆於2010-01-25 15:31
--未登入的會員無法查看對方簽名檔--
10樓
回應

流雲繫絮
捐贈 VP 給 流雲繫絮 檢舉此回應
Server是Windows ?

有否開啟上層路徑支援?


你不把自設錯誤模式關掉 沒有錯誤訊息

大家只能瞎猜


本篇文章回覆於2010-01-25 16:30
--未登入的會員無法查看對方簽名檔--
11樓
回應

流雲繫絮
捐贈 VP 給 流雲繫絮 檢舉此回應
附註一下

我第一句『Server是Windows ?』

是問是Windows 多少 2003 or 2008


本篇文章回覆於2010-01-25 21:59
--未登入的會員無法查看對方簽名檔--
12樓
作者回應

rokedr
檢舉此回應
擺渡人您好:
我是用dreamweaver做的,它的web.config檔裡面的內容只有下列幾行字而已


所以我想說把customErrors另外加在裡面,變成這樣



但是執行的結果還是出現一樣的錯誤訊息…

-------------------------------------------------------------------------------

流雲繫絮站長您好:

Server是2003的,謝謝!


本篇文章回覆於2010-01-26 18:01
--未登入的會員無法查看對方簽名檔--
13樓
作者回應

rokedr
檢舉此回應
各位高手們,小弟已經找到問題的所在了,並解決了!
問題並非在web.config組態檔的地方,而是程式裡的一些部分打錯了。
不過,還是謝謝各位意見的提供與分享,謝謝~~


本篇文章回覆於2010-01-26 19:19
--未登入的會員無法查看對方簽名檔--
[變換順序]
1
 

回覆
如要回應,請先登入.