Windows Azure - 无法创建角色入口点

时间:2011-01-05 07:08:16

标签: c# asp.net windows azure webrole

我正在将ASP .NET 2.0 WebSite迁移到WebRole(ASP.NET 4.0和VS2010)。创建新的Web角色后,我将所有文件和文件夹从网站移动到WebRole,然后引用所有需要的dll。我构建并运行Web角色独立,一切都没问题。但是当我构建并运行WindowsAzureProject时,会出现以下错误

[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设置了“Copy local”为true,但它也没有效果。我只是认为spring.core和spring.aop导致错误,但我不知道如何调试和捕获它崩溃的地方

在这种情况下请帮助我。非常感谢,抱歉我的英语不好

3 个答案:

答案 0 :(得分:1)

调试此问题的最简单方法是为部署启用Intelitrace并以此方式进行调试。这是关于如何执行此操作的good post。您还可以启用诊断并在将starup包装在try catch中后将其记录下来。虽然,Intelitrace是最好的方式。

答案 1 :(得分:1)

需要注意的另一点是,需要满足依赖关系的依赖关系并在Web角色中明确引用,即如果在解决方案中引用dll或其他项目,则必须包含该项目或dll的依赖关系。您的Web角色引用,CopyLocal设置为true。

这是因为Azure打包程序不会为您扫描依赖关系树,它只会查看第一级引用,即您角色的引用,因此可能会丢失树下面的dll,您将获得一个类型加载异常。

斯科特的答案可以帮助您找到丢失的DLL。希望有所帮助。

答案 2 :(得分:0)

您是否删除了WebRole.cs文件?