2017-04-10 140 views
0

我的代碼有這個奇怪的問題。當它在我的本地機器上運行時效果很好,但是當我將它發佈到服務器上時,它突然無法檢索類型。它似乎不會導出所有文件。我收到的錯誤 Error ReceivedCodeBehind無法加載類型

我試過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; 
     } 
    } 
} 
+0

你是如何發佈該網站的? – mason

+0

Build =>發佈TheDatabase => FileSytem並且目標位置是服務器上的文件夾 – Arnes

+0

嘗試將'CodeBehind'更改爲'CodeFile',如下所示:<%@ Page Language =「C#」AutoEventWireup =「true」CodeFile =「Default.aspx .cs「Inherits =」TheDatabase.Default「%>'。如果您有權訪問服務器中的IIS,請右鍵單擊該站點並使用「轉換爲應用程序」,然後確保已更新所有已編譯的DLL。 –

回答

0

我很困惑,因爲我的代碼是好的,事實證明我還沒有開始我的應用程序在IIS中。對我感到羞恥......

相關問題