0
我的代碼有這個奇怪的問題。當它在我的本地機器上運行時效果很好,但是當我將它發佈到服務器上時,它突然無法檢索類型。它似乎不會導出所有文件。我收到的錯誤 CodeBehind無法加載類型
我試過CodeFile,它能正常工作,但後來在無法加載ObjectDataSource的地方收到同樣的錯誤。我檢查繼承,似乎OK ....
下面是代碼:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TheDatabase.Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form2" runat="server">
<div>
<asp:DropDownList ID="ddl_VehicleList" runat="server">
<asp:ListItem>V4</asp:ListItem>
</asp:DropDownList>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellPadding="3" CellSpacing="2" DataSourceID="ods_PnDetails">
<Columns>
<asp:BoundField DataField="Vehicle" HeaderText="Vehicle" SortExpression="Vehicle" />
<asp:BoundField DataField="VCC" HeaderText="VCC" SortExpression="VCC" />
<asp:BoundField DataField="QuantM1" HeaderText="QuantM1" SortExpression="QuantM1" />
<asp:BoundField DataField="VehM1" HeaderText="VehM1" SortExpression="VehM1" />
<asp:BoundField DataField="JCI" HeaderText="JCI" SortExpression="JCI" />
<asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description" />
</Columns>
<FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
<HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
<PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
<RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
<SortedAscendingCellStyle BackColor="#FFF1D4" />
<SortedAscendingHeaderStyle BackColor="#B95C30" />
<SortedDescendingCellStyle BackColor="#F1E5CE" />
<SortedDescendingHeaderStyle BackColor="#93451F" />
</asp:GridView>
<asp:ObjectDataSource ID="ods_PnDetails" runat="server" SelectMethod="GetResult" TypeName="TheDatabase.PNDetailsDataAccessLayer">
<SelectParameters>
<asp:ControlParameter ControlID="ddl_VehicleList" DefaultValue="V4" Name="VehicleID" PropertyName="SelectedValue" Type="String" />
</SelectParameters>
</asp:ObjectDataSource>
</div>
</form>
</body>
</html>
然後談到Default.aspx.cs裏面是空的
using System;
namespace TheDatabase
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
}
和我對象數據源
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
namespace TheDatabase
{
public class SQLUlaznaTabela
{
public string Vehicle { get; set; }
public string VCC { get; set; }
public string QuantM1 { get; set; }
public string VehM1 { get; set; }
public string JCI { get; set; }
public string Description { get; set; }
}
public class PNDetailsDataAccessLayer
{
public PNDetailsDataAccessLayer()
{
}
public List<SQLUlaznaTabela> GetResult(string VehicleID)
{
List<SQLUlaznaTabela> ulaz = new List<SQLUlaznaTabela>();
string SC = ConfigurationManager.ConnectionStrings["QuotationCalculationDB"].ConnectionString;
using (SqlConnection con = new SqlConnection(SC))
{
SqlCommand cmd = new SqlCommand("Select Vehicle, VCC,QuantM1,VehM1,Description from ProdPerVehicleLastYear where Vehicle = @Vehicle", con);
SqlParameter param = new SqlParameter("@Vehicle", VehicleID);
cmd.Parameters.Add(param);
con.Open();
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
SQLUlaznaTabela ulazniRed = new SQLUlaznaTabela();
ulazniRed.Vehicle = rdr["Vehicle"].ToString();
ulazniRed.VCC = rdr["VCC"].ToString();
ulazniRed.QuantM1 = rdr["QuantM1"].ToString();
ulazniRed.VehM1 = rdr["VehM1"].ToString();
ulazniRed.Description = rdr["Description"].ToString();
ulaz.Add(ulazniRed);
}
}
return ulaz;
}
}
}
你是如何發佈該網站的? – mason
Build =>發佈TheDatabase => FileSytem並且目標位置是服務器上的文件夾 – Arnes
嘗試將'CodeBehind'更改爲'CodeFile',如下所示:<%@ Page Language =「C#」AutoEventWireup =「true」CodeFile =「Default.aspx .cs「Inherits =」TheDatabase.Default「%>'。如果您有權訪問服務器中的IIS,請右鍵單擊該站點並使用「轉換爲應用程序」,然後確保已更新所有已編譯的DLL。 –