2012-07-20 77 views
1

我在部署到Azure的web-api MVC网站中遇到错误500。 WebApi控制器访问Azure表存储,它在本地工作(本地网站与我的Azure表一起工作)。可从网站访问Azure Table

疑难解答我使用“链接的资源”页的网站链接到存储,但问题注意以下几点: “客户在Windows Azure管理门户网站的预览版不支持存储账户链接到一个网站或云服务“ 尽管此消息显示状态为”已链接“。

Azure的这个阶段有可能从Web站点访问表吗?

注:这是VS2010和.NET4

代码的要求:

public static TableServiceContext GetContext() 
    { 
     CloudStorageAccount storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=AccountName;[email protected]=="); 

     CloudTableClient tableClient = storageAccount.CreateCloudTableClient(); 

     var context = tableClient.GetDataServiceContext(); 
     сontext.IgnoreResourceNotFoundException = true; 
     return context; 
    } 

    public IEnumerable<Destination> GetAllDestinations() 
    { 
     try 
     { 
      return TableProvider.GetContext() 
         .CreateQuery<Destination>(Model.Consts.DestinationTableName); 
     } 
     catch (Exception e) 
     { 
      return new Destination[1] 
      { 
       new Destination() 
       { 
        CountryName = e.Message 
       } 
      }; 
     } 
    } 
+0

您可以发布您用于与表格存储进行交互的代码(出于安全原因,不需要您的帐户名称和存储密钥) – 2012-07-21 01:11:21

回答

2

项目已被创建在一个错误的方式。 当你想创建一个web api的网站,你应该选择Web - > MVC 4而不是云 - > MVC 4 Web角色。我错误地做了第二次,然后发布了网站,而不是网络角色。

+0

那么这能解决你的问题吗? – 2012-07-23 03:23:10

+1

它的确如此。最初,我使用mvc 4网站创建了一个Web角色,然后尝试仅部署网站。 WebApi功能在本地工作,可以部署到Azure网站,但WebApi无法从Azure工作。 – 2012-07-24 13:50:30

0

是。存储服务不知道或关心您的代码在哪里运行。

我不知道新的门户中有什么“链接”,但我认为这只是一个管理UI抽象。我不认为它对运行代码有任何影响。 (也许它设置亲和组?)

+0

不,它不会设置关联组,因为您可以链接其他资源数据中心。 – 2012-07-21 01:12:36