我正在開發一塊現有的網站,並有很多問題試圖將我的文件上傳到服務器。一切運行良好本地,但一旦我把我的文件在服務器上的東西開始打破。ASP.NET 3.5無法看到我的代碼
現在我有一個頁面,得到這個錯誤
「分析器錯誤信息:‘[命名空間] [頁面名稱]’未能加載類型
如果我走了。這個名字空間和pagename是在後面的代碼中聲明的,這在頁頭中被引用。
我也剛剛注意到,在我之前的所有頁面都沒有代碼。
我正在開發一塊現有的網站,並有很多問題試圖將我的文件上傳到服務器。一切運行良好本地,但一旦我把我的文件在服務器上的東西開始打破。ASP.NET 3.5無法看到我的代碼
現在我有一個頁面,得到這個錯誤
「分析器錯誤信息:‘[命名空間] [頁面名稱]’未能加載類型
如果我走了。這個名字空間和pagename是在後面的代碼中聲明的,這在頁頭中被引用。
我也剛剛注意到,在我之前的所有頁面都沒有代碼。
因此,我最終與在該網站上工作的其他團隊的首席開發人員進行了交談。他解釋說,他們做一個解決方案重建,然後將任何更改爲* x文件和/ bin .dll。出於某種原因,當我要求它更新時,我的Subversion客戶端並沒有實際更新任何內容,所以我的分支沒有其他小組製作的新控件。當我構建我的解決方案時,它沒有包含新控件的.dll文件,所以當我上傳我的dll時,新的控件沒有定義,並且我得到了相同的消息。當我把新的dll放下時,我的控件沒有被定義。
無論如何,我解決了這個問題。感謝您的答案。
當你有一個代碼隱藏文件時,它需要被編譯成一個DLL,並且該DLL需要位於Web服務器的bin目錄中。如果沒有Inherits
,它實際上並不能正常工作 - 你的代碼隱藏內容不會在那裏 - 它最初可能只顯示正常,但沒有任何事件會觸發。
如果網站的其餘部分全部使用.aspx頁面中包含的代碼完成,那麼這些頁面都是獨立的。但是如果你想使用代碼隱藏,那麼你需要發佈DLL。
在Web服務器上放置文件有兩種選擇。
實際上有三個,但我認爲你現在只需要處理這兩個。它們在「靈活部署」部分的http://msdn.microsoft.com/en-us/library/ms178466(v=vs.100).aspx中進一步描述。
你的前任顯然使用了第一種方法。解決此問題的唯一方法是將編譯後的.dll文件從\ bin目錄中取出,並使用Reflector或Teleriks's Just Decompile之類的工具對其進行反編譯。 (後者是免費的,前者在有限的試用期內免費)
另外,如果你可以得到完整的源代碼,你可以簡單地刪除所有的內容,並使用非編譯的方法。當然,會有停機時間,你需要非常仔細地測試...
測試最簡單的方法來啓動你的代碼併發布代碼。在Visual Studio項目的內部右鍵單擊您的應用程序,然後單擊發布,然後選擇位置,您可以在本地系統上創建一個文件夾,然後選擇僅運行此應用程序所需的文件,然後選擇發佈。它只會複製運行應用程序所需的文件,並且您可以將這些文件複製到您的服務器,並且所有內容都應該正確。我還將複製你的web.config/app.config文件,確保文件中的所有內容都是正確的,或者在發佈完成後從目錄中刪除該文件。
請分享代碼和頁面指令。 – NoviceProgrammer 2013-03-06 18:15:49