我在開發服務器上進行Azure工作時遇到了一些麻煩。我有一個我想連接到Azure的Silverlight應用程序,因此我從Web角色公開了一個REST API。開發服務器上的Azure問題
這裏是我的服務類:
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class ExpenseService
{
private ExpenseDataSource expenseData = new ExpenseDataSource();
[OperationContract]
[WebGet(UriTemplate="expenses", ResponseFormat=WebMessageFormat.Xml)]
public List<String> GetExpenses()
{
return expenseData.Select().ToList();
}
}
的ExpenseDataSource
類型初始化失敗:
public class ExpenseDataSource
{
private static CloudStorageAccount storageAccount;
private ExpenseTableContext context;
static ExpenseDataSource()
{
CloudStorageAccount.SetConfigurationSettingPublisher(
(configName, configSettingPublisher) =>
{
string connectionString = RoleEnvironment.GetConfigurationSettingValue(configName);
configSettingPublisher(connectionString);
}
);
storageAccount = CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
CloudTableClient.CreateTablesFromModel(typeof(ExpenseTableContext), storageAccount.TableEndpoint.AbsoluteUri, storageAccount.Credentials);
}
// ...
}
的錯誤是:
SEHException被抓獲
外部合作mponent已拋出一個 異常。
我不知道我在做什麼錯。我正在嘗試跟隨此tutorial。作者描述了需要爲非Azure環境做不同的事情,比如NUnit測試。我需要在開發服務器上運行一些東西嗎?我是否應該配置此應用程序以使用真正的Azure存儲,即使它正在運行我的機器?
更新:如果我註釋掉ExpenseDataSource
構造,只是用假數據,該服務工作正常。
更新2:@Maupertuis回答說我無法從靜態初始化程序設置存儲帳戶。但是,這直接來自MS Windows Azure代碼示例:
public class GuestBookEntryDataSource
{
private static CloudStorageAccount storageAccount;
private GuestBookDataContext context;
static GuestBookEntryDataSource()
{
storageAccount = CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
CloudTableClient.CreateTablesFromModel(
typeof(GuestBookDataContext),
storageAccount.TableEndpoint.AbsoluteUri,
storageAccount.Credentials);
}
// ...
}
難道這能工作嗎?
是的,SO停電是一個巨大的痛苦。謝謝你的回答,我會試試這個。我認爲這樣做的原因可以從我從MSFT下載的Windows Azure培訓套件(上面貼出)中找到。奇。 – 2010-10-09 16:14:36
我把'SetConfigurationSettingPublisher'調用放在'OnStart()'中,但它永遠不會被調用。我在那裏沒有被擊中的斷點。我認爲'OnStart()'總是跑? – 2010-10-09 16:43:02
WebRole類是公開的嗎?它是否繼承自RoleEntryPoint?它是您的應用唯一的RoleEntryPoint類嗎? – Eilistraee 2010-10-11 10:44:32