ServiceConfiguration.cscfg和ServiceDefinition.csdef如何在Azure中使用WebConfig?

时间:2010-09-10 09:47:43

标签: database azure connection-string azure-sql-database

我有一个很棒的Silverlight应用程序,我已经成功转换并添加了一个CloudService项目。我已将数据库上传到SQL Azure,并且从我的webconfig文件中连接到SQL Azure上的此数据库一切正常。因此,我正在崩溃的下一步是将Cloud Service添加到我的解决方案并将该服务设置为启动项目。

所以,我猜我没有正确地将连接字符串添加到ServiceConfiguration.cscfg / ServiceDefinition.csdef ?

我得到的错误是:错误消息用于查询LoadUsers:System.ServiceModel.DomainServices.Client.DomainOperationException:查询'LoadUserInfo'的加载操作失败。远程服务器返回错误:NotFound .....

我的connectionstring在webconfig中看起来像这样:

<add name="LiveEntities"   connectionString="metadata=res://*/LiveModel.csdl|res://*/LiveModel.ssdl|res://*/LiveModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.;Initial Catalog=Live09092010;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

我是否需要将相同的连接字符串放入ServiceConfiguration.cscfg / ServiceDefinition.csdef中,它应该是什么样的?

Solution Live
 SilverLight App proj 1
  --files
 Silverlight App proj 2
  --files
 Silverlight App proj 3...
  --files...

 Live.Web
  --My Project
  --Default.aspx
  --Web.config
  --etc..

 LiveCloudServices
  Roles
   --Live.Web
  --ServiceConfiguration.cscfg
  --ServiceDefinition.csdef

2 个答案:

答案 0 :(得分:2)

Serviceconfiguration.cscfg和Service Definition.csdef帮助定义Azure Fabric如何托管您的应用。如果您不需要它们,应用程序设置现在必须放在这些文件中。

基本上,别的东西是错的。如果你提供更多的见解(来自评论),我会编辑这个,但想回答你的实际问题。

您希望在cscfg文件中使用设置的时间是,您需要能够在运行时更改这些设置,或者不关闭服务以使其受到影响。在该上下文中使用的变量在服务定义中定义,然后在ServiceConfiguration中设置它们的值。

然后可以在运行时上传.cscfg文件,这将在您的应用程序中引发一个事件。你可以挂钩这个事件并按照你认为合适的方式做出回应。

答案 1 :(得分:1)

Thanx指出我正确的方向,经过当地DevFabric的一些测试,我能够缩小我的问题范围。在我的一个银光项目中,它最终成为了一个愚蠢的Copy Local beeing设置为虚假参考。 我很高兴能在Azure上运行:)