8

我在天蓝色云存储上拥有我的数据库和其他存储。我首先使用实体​​代码,但问题是当我尝试使用CloudConfigurationManager.GetSetting()从云存储中读取连接字符串时,出现以下错误:

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

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

它有2个配置文件:

1)服务配置.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)服务定义.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>

这是我读取数据库连接字符串的上下文文件:

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;
           }
4

2 回答 2

11

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

于 2015-07-27T12:12:53.547 回答
1

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

于 2018-01-19T16:21:51.330 回答