1

我正在将 ASP .NET 2.0 网站迁移到 WebRole(ASP.NET 4.0 和 VS2010)。创建新的 Web 角色后,我将所有文件和文件夹从网站移动到 WebRole,然后引用所有需要的 dll。我独立构建和运行网络角色,一切正常,没有问题。但是当我构建并运行 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 的“复制本地”设置为 true,但它也不起作用。我只是认为 spring.core 和 spring.aop 导致了错误,但我不知道如何调试和捕捉它崩溃的地方

在这种情况下请帮助我。非常感谢,对不起我糟糕的英语

4

3 回答 3

1

调试此问题的最简单方法是为您的部署启用 Intelitrace 并以这种方式进行调试。这是一篇关于如何做到这一点的好帖子。您还可以在将启动程序包装在 try catch 中后启用诊断并记录它。虽然,Intelitrace 是最好的方法。

于 2011-05-05T05:10:39.260 回答
1

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

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

Scott 的回答应该可以帮助您找到丢失的 dll。希望有帮助。

于 2011-06-09T23:19:10.680 回答
0

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

于 2011-01-05T10:48:41.307 回答