Ich bin mit Azure Tabellen Speichern Informationen von meinem MVC-app einzuloggen, aber es wirft manchmal die folgende Ausnahme:Azure Tabellen Speicher Ausnahme auf Insert werfen: (409) Konflikt
[WebException: The remote server returned an error: (409) Conflict.]
System.Net.HttpWebRequest.GetResponse() +1399
Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync(RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext) in c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Core\Executor\Executor.cs:677
[StorageException: The remote server returned an error: (409) Conflict.]
Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync(RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext) in c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Core\Executor\Executor.cs:604
Microsoft.WindowsAzure.Storage.Table.TableOperation.Execute(CloudTableClient client, CloudTable table, TableRequestOptions requestOptions, OperationContext operationContext) in c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Table\TableOperation.cs:44
Es scheint zu passieren Wenn ich zum ersten Mal nach einer gewissen Inaktivität auf die Website klicke, wird die Seite geladen, wenn ich auf "Aktualisieren" klicke. Hier
ist der Teil des Codes, der die Ausnahme verursacht:
var visit = new TrackerVisitEntity(id, url, referer);
var insertOperation = TableOperation.Insert(visit);
_table.Execute(insertOperation);
aktualisieren
Wie in den Kommentaren identifiziert und beide unten Antworten, das Problem ist, dass manchmal die Seite zweimal geladen wird in schneller Folge, und ich verwende eine GUID (einzigartig für den Benutzer) als Partition Schlüssel und die aktuelle datetime als Zeilenschlüssel, so dass dies doppelte Entitäten verursacht und die Ausnahme verursacht.
Obwohl Amors Antwort eingehender war, war Dogus einfache Lösung diejenige, die ich benutzte, also markierte ich seine korrekte. Danke an alle.
Können Sie bitte überprüfen, ob die Entität existiert, wenn Sie diesen Fehler erhalten? –
Was verwenden Sie als RowKey und PartitionKey? –
Bitte überprüfen Sie, ob die Entität bereits als Gaurav existiert. –