簡體   English   中英

asp.NET 2.0 Web站點無法訪問App_Code中的類

[英]asp.NET 2.0 Web Site Can't Access Classes in App_Code

在將我的網站部署到服務器后,我遇到了訪問課程的問題。 請注意,這是一個Web 站點而不是Web 應用程序 。錯誤是:

編譯器錯誤消息:CS0246:找不到類型或命名空間名稱“Order”(您是否缺少using指令或程序集引用?)

版本信息:Microsoft .NET Framework版本:2.0.50727.1433; ASP.NET版本:2.0.50727.1433

我做了很多谷歌搜索,但沒有找到任何有用的東西。

我的代碼看起來像這樣(我在聲明Order的行上得到編譯器錯誤):

//Default.aspx.cs
namespace Foo
{
    public partial class _Default : System.Web.UI.Page
    {
        private Order custOrder;
        ....etc
    }
}

在App_Code文件夾中,我有Order.cs:

namespace Foo
{
    public class Order
    {
        ....etc
    }
}

奇怪的是,這在本地和開發環境中都可以正常工作。 當我將它移動到qa環境時,就是當我得到那個錯誤時。

我通過將所有代碼提交到subversion存儲庫然后在服務器計算機上進行導出來進行部署。

我想這可能是某種命名空間錯誤,但我不知道它為什么會在某些機器而不是其他機器上工作。

知道在不同的服務器上可能會有什么不同可能會導致這種情況嗎? 所有計算機都將.net版本報告為2.0

右鍵單擊App_Code中的源文件,並將其“Build Action”屬性設置為“Compile”。

正如它所說,錯誤意味着它找不到那種類型。

可能的原因:

  1. 編譯錯誤導致app_code文件夾中的.cs文件無法編譯。 當ASP.NET查看已編譯的代碼時,它找不到您要查找的類,從而導致錯誤。

  2. .cs文件未部署到app_code。 顯然,如果源文件不在站點中,則無法編譯它們。

  3. 權限問題阻止服務器加載.cs文件。

  4. 您的某個頁面錯誤地引用了該類 - 可能是.cs或.aspx中的拼寫錯誤,移動到新命名空間或重命名的類等。

實質上,無法找到,訪問或編譯源代碼。

屬性Build Action是否在App_Code文件上設置為Compile? 默認情況下,它不適用於Web應用程序項目。

很多時候在SVN中忽略bin目錄(有充分的理由),所以最終發生的是本地(調試時)VS負責為您創建App_Code.dll。 您需要做的是檢查bin目錄是否已部署到您的服務器計算機。 如果不是,您可以通過使用部署網站或ftp副本等方式部署解決方案。

您是否在.aspx文件中部署.dll?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM