2011-01-05 10 views
1

Ich migriere eine ASP.NET 2.0 WebSite zu WebRole (ASP.NET 4.0 und VS2010). Nachdem ich eine neue Webrolle erstellt habe, habe ich alle Dateien und Ordner von der Website nach WebRole verschoben und dann alle benötigten DLLs referenziert. Ich baue und leite Webrollen frei und alles ok ohne Probleme. Aber wenn ich baue und laufe zu, unter Fehlern kommenWindows Azure - Rolleintrittspunkt konnte nicht erstellt werden

[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) 

und der Status „wurde Vorgang abgebrochen“

Es dauert Tage zu lösen, aber nichts gefunden. Ich habe "Copy local" für alle Referenz-DLLs auf "true" gesetzt, aber das hat auch keine Auswirkungen. Ich habe gerade gedacht, dass spring.core und spring.aop den Fehler verursacht haben, aber ich weiß nicht, wie man debuggt und wo es abstürzt

Bitte helfen Sie mir in diesem Fall. Vielen Dank und Entschuldigung für mein schlechtes Englisch

Antwort

0

Haben Sie vielleicht die Datei WebRole.cs gelöscht?

+0

Nein, habe ich nicht. Auch wenn ich bei OnStart() der WebRole-Klasse einen Breakpoint gesetzt habe, springt es nicht dorthin :( –

1

Die einfachste Möglichkeit, dieses Problem zu beheben, besteht darin, Intelitrace für Ihre Bereitstellung zu aktivieren und auf diese Weise zu debuggen. Dies ist ein good post wie Sie dies tun. Sie können die Diagnose auch aktivieren und protokollieren, nachdem Sie das Starup in einen try catch eingepackt haben. Obwohl, Intelitrace ist der beste Weg zu gehen.

0

Ein weiterer Punkt ist, dass die Abhängigkeiten Ihrer Abhängigkeiten erfüllt sein müssen und explizit in Ihrer Webrolle referenziert werden müssen, dh wenn Sie eine DLL oder ein anderes Projekt in Ihrer Lösung referenzieren, müssen Sie die Abhängigkeiten dieses Projekts oder dieser DLL einschließen in Ihrer Webrolle Referenzen mit der CopyLocal auf True festgelegt.

Dies ist, weil der Azure Packager die Abhängigkeitsbaumstruktur für Sie nicht durchsucht, es wird nur auf die erste Ebene von Referenzen, dh diejenigen Ihrer Rolle, und daher dlls weiter unten in der Struktur möglicherweise fehlt, und Sie erhalten ein type load ausnahme.

Scotts Antwort sollte Ihnen helfen, zu finden, welche DLL fehlt. Ich hoffe, das hilft.

Verwandte Themen