2011-01-05 36 views
1

我正在將ASP .NET 2.0 WebSite遷移到WebRole(ASP.NET 4.0和VS2010)。創建新的Web角色後,我將所有文件和文件夾從網站移到WebRole,然後引用所有需要的dll。我建立和運行網站角色立場,一切都好,沒有問題。但是,當我建立和運行WindowsAzureProject,下面的錯誤拿出Windows Azure - 無法創建角色入口點

[fabric] Role state Stopping 
[fabric] Role state Stopped 
[fabric] Role state Aborted 
[fabric] Role state Teardown 
[fabric] Role state Destroyed 
[runtime] Role entrypoint could not be created: 
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information. 
    at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module) 
    at System.Reflection.Assembly.GetTypes() 
    at Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.CreateRoleEntryPoint(RoleType roleTypeEnum) 
    at Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.InitializeRoleInternal(RoleType roleTypeEnum) 

和狀態「操作被取消」

我花了幾天來解決,但沒有找到。我確實爲所有參考dll設置了「複製本地」爲true,但它也不起作用。我只是認爲spring.core和spring.aop造成的錯誤,但我不知道如何調試和捕捉它崩潰的地方

請幫助我在這種情況下。非常感謝併爲我可憐的英語感到遺憾

回答

0

您是否已經刪除了WebRole.cs文件?

+0

不,我沒有。即使我在WebRole類的OnStart()中放置了一個斷點,它也不會跳到那裏:( – 2011-01-06 03:51:25

1

調試此問題的最簡單方法是爲您的部署啓用Intelitrace並以此方式進行調試。關於如何做到這一點,這是一個good post。您也可以啓用診斷程序並在嘗試捕獲包裝starup後記錄它。雖然,Intelitrace是最好的選擇。

0

另一點需要注意的是,您的依賴關係的依賴關係需要在您的web角色中得到滿足和顯式引用,即如果您在解決方案中引用dll或其他項目,則必須包含該項目或dll的依賴關係在您的Web角色引用中將CopyLocal設置爲true。

這是因爲Azure打包程序不會爲您掃描依賴關係樹,因此它只會查看第一級引用(即您的角色的引用級別),因此進一步向下的樹可能會丟失,您將得到一個輸入加載異常。

Scott的回答應該可以幫助您找到哪個DLL丟失。希望有所幫助。