我有一个带有WebRole项目的Azure解决方案。
Windows Azure Tools version: 2.2packages.config项目中的WebRole包含以下内容:
<package id="Microsoft.WindowsAzure.ConfigurationManager" version="2.0.2.0" targetFramework="net45" />我已经"Nuget启用包还原“,因此假设正确的包是链接和引用在构建。
但是,当我部署(登录到TFS online,它构建了解决方案并开始部署到Azure)时,下面的行在我的文本框Azure Compute模拟器上工作得很好,这一行返回null:
CloudConfigurationManager.GetSetting("StorageConnectionString")我读过几篇关于这个问题的文章,但到目前为止还没能解决这个问题。是否有一个包/SDK不兼容的地方,我不知道?
发布于 2013-12-23 04:01:40
问题在于我是如何配置Azure项目的,下面我将对此进行解释。我还在在MSDN论坛上提出这个问题上得到了一些帮助。
TLDR;在Visual中,我的项目被设置为带有WebRole的Azure服务。然而,我是部署到一个"Azure网站“的生产项目。Azure Cloud与WebRole和Azure网站有着重要的区别。
这里有更多的细节: Azure可以作为两种不同的项目类型和服务配置的一部分来托管一个网站/webservice。当您访问Azure门户并创建一个新服务时,您可以创建:
Azure Cloud服务可能包含也可能不包含WebRole。如果是这样的话,那么它将可以通过类似于这个http://servicename.cloudapp.net的端点访问。另一方面,Azure网站则托管在像这个http://websitename.azurewebsites.net这样的端点上。这些区别远远超出了域名的范围。
WebRole与网站
WebRole (可以在Visual中作为“云服务”解决方案的一部分创建)连接到您创建的云服务的其余部分,因此可以引用和使用属于云服务的资源,例如存储在.cscfg文件中的设置和配置。这些设置由CloudConfigurationManager库正确解析和引用。
但是,网站是一个独立的项目,与部署到IIS express中的web应用程序非常类似。网站本质上映射到Visual中的"Web应用程序“解决方案。即使您在web应用程序中引用了CloudConfigurationManager库,也不知道如何处理这种类型的项目。
网站解决方案
无论如何,这次我将我的项目重新创建为"Web应用程序“解决方案(而不是"Cloud”)。我将设置存储在Web.Config (以及Web.Debug.Config和Web.Release.Config口味)中:
<configuration>
<appSettings>
<add key="MyAppSettingKey" value="MyAppSettingValue" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5.1" />
</system.web>
</configuration>在代码中,我使用了ConfigurationManager库:
string mySetting = ConfigurationManager.AppSettings["MyAppSettingKey"];进一步讨论
可以随意查看此MSDN线程,以进一步讨论这个主题。
发布于 2014-04-09 15:32:53
在从AzureSDK2.2升级到2.3之后,我也遇到了类似的问题。似乎在我升级了我的项目之后,解决方案->启动项目从Azure项目更改为Web项目。结果是,当我运行解决方案时,Web角色项目是在IIS Express中运行的,而不是在Azure模拟器中运行的。将解决方案的启动项目更改为Azure项目解决了这个特殊问题。
发布于 2015-05-05 09:50:15
根据我的理解,
如果您没有云服务或在本地运行,CloudConfigurationManager.GetSetting将查看web.config。
请将您的设置从ServiceConfiguration.Cloud.cscfg文件添加到web.config文件中,它将工作。
例如:
在ServiceConfiguration.Cloud.cscfg文件中:
<Setting name="SqlServerConnectionString" value="your connections string" />
添加
<add key="SqlServerConnectionString" value="your connections string" />
如果你有什么问题请告诉我。
https://stackoverflow.com/questions/20432586
复制相似问题