获取错误参数'nameOrConnectionString'不能为null,为空或仅包含Azure数据库的空白区

时间:2015-05-05 07:48:30

标签: asp.net-mvc entity-framework azure azure-sql-database azure-configuration

我正在使用我的数据库和其他存储在azure云存储上。我正在使用实体代码首次使用但问题是当我尝试使用 CloudConfigurationManager.GetSetting()从云存储中读取连接字符串时我得到以下错误:

错误:参数'nameOrConnectionString'不能为null,为空或仅包含空格。 EntityFramework.dll中出现“System.ArgumentException”类型的异常,但未在用户代码中处理

这是我的Azure项目:Demo.Web.Azure

它有2个配置文件:

1)ServiceConfiguration.Cloud.cscfg:

<Role name="Demo.Web">
 <Setting name="MyConnectionString"
 value="Server=----;Database=DemoEntity;User ID=---;Password=---&amp;w;Trusted_Connection=False;
Encrypt=True;MultipleActiveResultSets=True;" />

  <Setting name="Demo.Storage"
 value="DefaultEndpointsProtocol=https;AccountName=---;AccountKey=------"
 />

2)ServiceConfiguration.Local.cscfg:

<Role name="Demo.Worker">
  <Setting name="Demo.Storage"
 value="DefaultEndpointsProtocol=https;AccountName=---;AccountKey=------"
 />

3)ServiceDefinition.csdef中:

<ServiceDefinition name="Demo.Web.Azure" schemaVersion="2014-06.2.4">
      <WebRole name="RepuGuard.Web" vmsize="Small">
         <ConfigurationSettings>
                  <Setting name="MyConnectionString" />

                  <Setting name="Demo.Storage" />
                 </ConfigurationSettings>

     </WebRole>

 <WorkerRole name="Demo.Worker" vmsize="Small">
                <ConfigurationSettings>
                  <Setting name="MyConnectionString" />

                  <Setting name="Demo.Storage" />
                 </ConfigurationSettings>

 </WorkerRole>

</ServiceDefinition>

这是我的Context文件,它读取数据库连接字符串:

public partial class MyDemoDBContext : DbContext, IDisposable
    {
           public ObjectContext Context { get; set; }
           public MyDemoDBContext()
            : base(CloudConfigurationManager.GetSetting("MyConnectionString"))//Getting Error here
           {
             Context = ((IObjectContextAdapter)this).ObjectContext;
           }
             public MyDemoDBContext (string connectionString)

            : base(connectionString)

             {

                 Context = ((IObjectContextAdapter)this).ObjectContext;

             }
}

在此处收到错误:

public MyDemoDBContext()
            : base(CloudConfigurationManager.GetSetting("MyConnectionString"))
           {
             Context = ((IObjectContextAdapter)this).ObjectContext;
           }

2 个答案:

答案 0 :(得分:7)

如果您有多个项目正在解决方案,尝试设置启动项目将解决此问题。(sry延迟)

答案 1 :(得分:0)

appsettings.json中的拼写错误对我造成了同样的System.ArgumentException。我发现字符串"ConnectionStrings"变成"CondfSnectionStrings"我不知道为什么。我的目光只是掩盖了这个问题,直到另一位程序员向我指出。