在 Azure Webrole OnStart 中保存时,HttpRuntime.Cache 对象为 null
我正在尝试让我的 WCF 服务使用 DI 如此处所示但是我不知道如何在 //todo 部分初始化 IUnityContainer。
我尝试过(但失败了)
将变量
IUnityContainer容器
设为公共和静态,并在我的Azure Webrole.cs中将其设置,但公共静态变量仍然为空。应用程序变量如此处所示
如何使在 Azure 上运行的 MVC 应用程序使用 DI 和 WCF?
I'm trying to make my WCF service use DI as shown here however I don't know how to initialize the IUnityContainer in the //todo section.
I've tried (and failed at)
Making the variable
IUnityContainer container
public and static and setting it within my Azure Webrole.cs however the public static variable is still null.Application variables as shown here
How do I make an MVC application running on Azure use DI with WCF?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
导致此功能不起作用的最可能原因是您正在使用 Windows Azure SDK 1.3 运行该项目。
在 1.3 中,WebRole 代码(Run/OnStart 等)继续在 Hostable Web Core 中运行,并且您的站点/服务在 IIS 下运行。它们是不同的过程,因此您在一个过程的记忆中所做的任何事情在另一个过程中都不会可见。
您可以删除服务定义的“站点”部分(本质上将所有内容带入 1 个进程:可托管 Web 核心,并且没有像 SDK 1.2 中那样的 IIS)或在服务中执行初始化:例如 global.asax
The most likely cause of this not working is that you are running the project with Windows Azure SDK 1.3.
In 1.3, the WebRole code (Run/OnStart, etc) continues to run in Hostable Web Core and your site/service runs under IIS. They are different processes so whatever you do in the memory of one will not be visible in the other.
You can either delete the "Sites" section of your service defintion (essentially bringing everything to 1 process: hostable web core and no IIS like in SDK 1.2) or perform initialization in your service: e.g. the global.asax