- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个基于 Azure/云的项目(仅限单个项目)。它已将 WCF/WebRole 添加到项目中。我的 WCF 服务使用 Entity Framework 与 SQLAzure 数据库进行通信。这工作得很好。
在项目的 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="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" " 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 尝试访问实体时,它会收到以下异常消息:
在配置中找不到指定的命名连接、不适合与 EntityClient 提供程序一起使用或无效。
注释 2::我刚刚注意到,我的 WebRole.cs
中的任何内容都看不到 WebRole.cs 中配置的任何内容>Web.config
文件。我是否有什么做得不正确或误解的地方?
有人以前遇到过这个问题或者有什么想法吗?
最佳答案
看起来我犯了以下错误: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
关于c# - 我的 webrole.cs 似乎找不到连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9850368/
我运行一个azrue webrole(托管2个网站+1个网络服务),它最初是在提到的“包”中上传的。初次上传后,我通过 Web 部署发布了其中一个网站的一些修补程序。 如果我的 azrue 角色重新启
我正在我的网络应用程序中编写代码,该代码需要列出并搜索网络角色上安装的特定证书。这是我的代码 // using System.Security.Cryptography.X509Certificate
我正在尝试找出一种解决方案,让 WebRole 每天早上 5 点运行任务。我查看了 Quartz.Net 和 stackoverflow 上的示例,但它们都将任务安排为每 10 分钟运行一次。有没有任
我已升级到 azure 1.7,现在我的构建过程已损坏。我有一个在构建后运行的脚本,它简单地触发 cspack,如下所示。 cspack "C:\Users\MyAppBuild\.hudson\jo
我正在尝试找出一种解决方案,让 WebRole 每天早上 5 点运行任务。我查看了 Quartz.Net 和 stackoverflow 上的示例,但它们都将任务安排为每 10 分钟运行一次。有没有任
A 有一个 azure 的网络角色,其中有一个测试页面和一个担任该角色的服务。发布角色后,它不会自动启动,仅在首次使用时启动。因此,如果角色由于某种原因被关闭,之后的第一次使用会非常慢。 有没有办法让
我正在开发 Azure Web 应用程序。该代码在我的本地计算机上编译并运行良好。但是,当我在 Azure 平台中上传包时,webrole 无法启动,并显示“忙碌”状态,并显示以下消息:“正在等待 A
我的 Azure 解决方案中有一个简单的 WebRole 类: public class WebRole : RoleEntryPoint { public override bool OnS
我有一个作为 Web 角色托管在 Azure 上的 Web 服务。在此 Web 角色中,我重写 Run() 方法并按以下顺序执行一些数据库操作,基本上充当辅助角色。 转到 blob 存储来提取一小组数
在升级部署的情况下,OnStart 是否会从 WebRole.cs 调用? 最佳答案 http://msdn.microsoft.com/en-us/library/microsoft.windows
我知道我们可以使用“站点”部分为许多站点拥有一个 WebRole。 我想知道这样做的限制:在哪些情况下创建新的 WebRole 更好? 最佳答案 文档声称您拥有“完整的 IIS” - 因此限制会相当高
我希望能够从正在运行的 Web 角色中获取部署的名称(在创建托管服务时命名)和位置(北欧、亚洲等)。我不想依赖证书和订阅 ID。 类似于: // Current role name. Ex: WebR
我正在探索 Azure 平台,但遇到了问题。 其实,有一点我不明白...... 我了解 Web 角色和辅助角色之间的区别。但是如何专门为 Java 应用程序创建 Web 角色呢? 因为在eclipse
目标:这一切都是为了支付一个 WebRole 实例的费用,但演示/测试多个站点,这些站点是完全独立的 VS 项目(ASP MVC 5,但这一定不重要)。站点不是通过端口号而是通过域名(主机)名称来区分
我们有一个带有 Web 角色的 Azure 云服务。我想将纯 html 文件上传到 Web 角色的应用程序,而不进行完全重新部署(该文件无论如何都会添加到下一个构建中)。该网络角色有多个实例,每个实例
我创建了一个具有两个角色的托管服务 - Web 角色和辅助角色。我想使用 ZeroMQ 在内部角色之间进行通信(我计划创建一堆这样的托管服务,每个服务中要处理的数据略有不同)。我想知道如何从 Web
有时,在我们部署在 Azure Web 角色上的网站中,问题与 javascript 和 HTML 中的小错误有关。我们转到 webroles 的所有实例并修复计算机上的这些 JS 和 HTML 文件
我在 Azure Web 角色中添加了多个网站,如下所示:
运行 Azure webrole 项目时,异常的堆栈跟踪没有行号。 是否可以为 webrole Azure 项目的异常(exception)提供行号? 项目使用 MVC.NET 布局。这意味着 Con
我想在运行时使用 c# 将键值对添加到 Azure Web 角色 web.config 文件。 非常感谢任何帮助。 最佳答案 这就是我们最终的做法。 我们在 web.config 中添加了一个值为空的
我是一名优秀的程序员,十分优秀!