Wir haben Transient Fault Handling Block für unsere Web-Rolle des Cloud-Service angewendet, wir haben sogar keinen einzigen Zeilencode geschrieben. Wenn wir versuchen, unseren Cloud-Dienst lokal zu debuggen, würde die Ausnahme wie folgt auf der Webseite angezeigt:Azure-Web-Rolle mit Transient-Fehlerbehandlung Block-Ausnahme: Der Pfad ist zu lang, nachdem er vollständig qualifiziert wurde
Der Pfad ist zu lang, nachdem vollständig qualifiziert. Stellen Sie sicher, dass der vollständige Pfad weniger als 260 Zeichen und der Verzeichnisname weniger als 248 Zeichen ist.
Beschreibung: Bei der Ausführung der aktuellen Webanforderung ist eine nicht behandelte Ausnahme aufgetreten. Bitte überprüfen Sie die Stack-Trace für mehr Informationen über den Fehler und wo es im Code entstanden ist.
Ausnahmedetails: System.IO.FileLoadException: Der Pfad ist nach der vollständigen Qualifizierung zu lang . Stellen Sie sicher, dass der vollständige Pfad weniger als 260 Zeichen beträgt und der Verzeichnisname weniger als 248 Zeichen umfasst.
Assembly Trace laden: Die folgenden Informationen können hilfreich sein, um festzustellen, warum die Assembly ‚Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.ServiceBus‘ konnte nicht geladen werden.
=== Pre-bind state information ===
LOG: DisplayName = Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.ServiceBus
(Partial)
WRN: Partial binding information was supplied for an assembly:
WRN: Assembly Name: Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.ServiceBus | Domain ID: 2
WRN: A partial bind occurs when only part of the assembly display name is provided.
WRN: This might result in the binder loading an incorrect assembly.
WRN: It is recommended to provide a fully specified textual identity for the assembly,
WRN: that consists of the simple name, version, culture, and public key token.
WRN: See whitepaper http://go.microsoft.com/fwlink/?LinkId=109270 for more information and common solutions to this issue.
LOG: Appbase = file:///C:/AzureCloudService2/WebRole1/
LOG: Initial PrivatePath = C:\AzureCloudService2\WebRole1\bin
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\AzureCloudService2\WebRole1\web.config
LOG: Using host configuration file: C:\Program Files\IIS Express\config\templates\PersonalWebServer\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Users/<user>/AppData/Local/dftmp/Resources/7f758b78-aef1-47f7-ad86-8be56d4218e0/temp/temp/RoleTemp/Temporary ASP.NET Files/root/63defe93/23a6bb89/Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.ServiceBus.DLL.
LOG: Attempting download of new URL file:///C:/Users/<user>/AppData/Local/dftmp/Resources/7f758b78-aef1-47f7-ad86-8be56d4218e0/temp/temp/RoleTemp/Temporary ASP.NET Files/root/63defe93/23a6bb89/Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.ServiceBus/Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.ServiceBus.DLL.
LOG: Attempting download of new URL file:///C:/AzureCloudService2/WebRole1/bin/Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.ServiceBus.DLL.
LOG: Using application configuration file: C:\AzureCloudService2\WebRole1\web.config
LOG: Using host configuration file: C:\Program Files\IIS Express\config\templates\PersonalWebServer\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Post-policy reference: Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.ServiceBus, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
ERR: Failed to complete setup of assembly (hr = 0x8007006f). Probing terminated.
Von der Protokollierung, so scheint es nicht Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.ServiceBus.dll
in oben genannten Standorten finden konnte, aber es eigentlich in der Tat bei C:/AzureCloudService2/WebRole1/bin/
befindet, habe ich es viele Male geprüft.
Mehrere Informationen:
- Wir installieren nur die Pakete über Nuget
- Wir haben auch andere Pakete versucht, wie
TransientFaultHandling.Caching
Etc, alle solche Probleme haben. - Interessant ist es in Arbeiter Rolle
Es scheint, dass das temporäre ASP.NET-Verzeichnis die maximale Pfadlänge überschreitet. Werfen Sie einen Blick auf [Windows Azure - Auflösen "Der Pfad ist zu lang, nachdem er vollständig qualifiziert wurde. Fehlermeldung"] (http://blogs.msdn.com/b/jnak/archive/2010/01/14/windows-azure- path-too-long.aspx) zum Festlegen der Umgebungsvariablen _CSRUN_STATE_DIRECTORY. –