[英]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”。
正如它所說,錯誤意味着它找不到那種類型。
可能的原因:
編譯錯誤導致app_code文件夾中的.cs文件無法編譯。 當ASP.NET查看已編譯的代碼時,它找不到您要查找的類,從而導致錯誤。
.cs文件未部署到app_code。 顯然,如果源文件不在站點中,則無法編譯它們。
權限問題阻止服務器加載.cs文件。
您的某個頁面錯誤地引用了該類 - 可能是.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.