2012-03-24 52 views
2

我有一个基于Azure/Cloud的项目(仅限单个项目)。它有一个WCF/WebRole添加到该项目。我的WCF服务正在使用实体框架与SQLAzure数据库交谈。这工作得很好。我的webrole.cs似乎无法找到连接字符串

在项目的web.config中我有以下几点:

<connectionStrings> 
    <add name="CommuteEntities" connectionString="metadata=res://*/Db.CommuteDataModel.csdl|res://*/Db.CommuteDataModel.ssdl|res://*/Db.CommuteDataModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=<db-here>.database.windows.net;initial catalog=dandr;persist security info=True;user id=<user-id-here>;password=<password-here>;multipleactiveresultsets=True;App=EntityFramework&quot; " providerName="System.Data.EntityClient" /> 
</connectionStrings> 

一切正常为止。所以我想做少量的预定后台处理(基于定时器而不是传入请求)。它的任务太小以至于无法为工作启动WorkerRole。

所以不是,我创建了类似的WebRole下列项目WebRole.cs

public override void Run() 
{ 
    while (true) 
    { 
     //This is for debug purposes: 
     string str = ConfigurationManager.ConnectionStrings["CommuteEntities"].ToString(); 

     BackgroundProcessing.BackgroundProcessing.BackgroundProcess(); 
     Thread.Sleep(150000); //2.5mins 
    } 
} 

出于某种原因,一线得到连接字符串似乎没有工作。但是,将相同的代码放入WCF服务中工作得很好。

为了强调,此解决方案中只有一个项目,并且WebRole.cs与工作的WCF服务位于同一项目中。

注意:获取连接字符串仅用于调试目的。我有根本的问题是,当我WebRole.cs试图访问一个实体它得到下面的异常消息:

The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid.

注2::我刚刚注意到,它会出现我的WebRole.cs中的任何内容都无法看到在Web.config文件中配置的任何内容。有没有我不正确或误解的东西?

有人遇到过这个或有任何想法吗?

回答

3

貌似我倒下列犯规:Azure web role process not loading web.config?

从这个问题的答案:从个人通信

@stevemarx - “代码在webrole.cs在不同的过程从下IIS Web应用程序运行,虽然你当然可以打开web.config并阅读它(它只是当前目录中的一个文件),但.NET在web.config中不会做任何特别的事情(这将会像放置一个文件称为web.config在与您正在运行的控制台应用程序相同的目录中。)“

所以不,webrole.cs进程中的代码不会加载我的web.config。

一些更多的信息在这里:

http://laorient.blogspot.com/2011/06/windows-azure-webrolecs-is-not-running.html

+0

我与达米安在这一个。我甚至会说你真的应该在云服务配置中加入类似的东西。此举还可以让您旋转凭据而无需重新部署应用程序。 – BrentDaCodeMonkey 2012-03-24 18:37:54

0

一个简单的和愚蠢的解决方案是增加的app.config并把在那里你所需要的配置。然后从Run()方法(db连接字符串等)中加载配置。有用!

其余的东西(服务等)托管在IIS中,您可以轻松地在其中加载web.config文件的配置。

相关问题