我得到一个类型为System.Data.Services.Client.DataServiceClientException的错误:
MESSAGE:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<code>EntityAlreadyExists</code>
<message xml:lang="en-US">The specified entity already exists.
RequestId:f1c45274-f149-463e-9815-f9ab9bb075f9
Time:2011-10-05T17:20:32.1930748Z</message>
</error>
STACKTRACE:
at System.Data.Services.Client.DataServiceContext.SaveResult.<HandleBatchResponse>d__1e.MoveNext()
我的问题是我不知道我自己的代码的哪一部分使表存储保存并导致错误。
有谁知道我怎么能得到一个更好的堆栈跟踪与一些我自己的代码在它?
关于如何设置Azure诊断的详细信息在这里:http://msdn.microsoft.com/en-us/library/ff966484.aspx.
总之,您需要用Azure跟踪侦听器配置应用程序,并更改Web角色/辅助角色启动代码,以将这些消息复制到表存储中。该链接给出了样板代码。
一旦你这样做了,你应该发现任何未处理的异常,或者任何写到System.Diagnostics.Trace
的东西,都会出现在你的Azure表存储日志中。
为了读取这些日志,我使用了Cerebrata AzureDiagnosticsManager。还有其他工具可以做到这一点,包括(如果你真的坚持!)Visual Studio本身。