在Windows Azure Training Kit中的第一个动手实验"Introduction to Windows Azure"运行时,可能出现下列错误:
<?xml version="1.0" encoding="utf-8" standalone="yes"?><error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"> <code>ResourceNotFound</code> <message xml:lang="zh-CN">The specified resource does not exist.</message></error> 说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.Services.Client.DataServiceClientException: <?xml version="1.0" encoding="utf-8" standalone="yes"?><error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"> <code>ResourceNotFound</code> <message xml:lang="zh-CN">The specified resource does not exist.</message></error>
经过调试检查,我认为GuestBookDataSource.cs文件中的静态构造函数中下列代码可能有问题:
static GuestBookDataSource() { storageAccount = CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
CloudTableClient.CreateTablesFromModel( typeof(GuestBookDataContext), storageAccount.TableEndpoint.AbsoluteUri, storageAccount.Credentials); }
CloudTableClient.CreateTablesFromModel函数似乎没有在Windows Azure Storage中创建我们需要存储数据的Table。
因此,我把上述代码替换为:
static GuestBookDataSource() { storageAccount = CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
CloudTableClient client = storageAccount.CreateCloudTableClient(); client.CreateTableIfNotExist("guestbookentities"); }
其中,"guestbookentities"应该与GuestBookDataContext.cs文件中CreateQuery函数调用处提供的EntitySet名字一致。
这样,便不再出现上述错误。