有时在使用IISExpress在VS2012中运行我的MVC4站点时,我收到以下错误并且IISExpress停止:
iisexpress.exe: Managed (v4.0.30319)' has exited with code -1073741816 (0xc0000008) 'An invalid handle was specified
Run Code Online (Sandbox Code Playgroud)
事件日志中没有任何内容,我无法在interweb上找到任何内容.
我有一些非常含糊的理论:
哦,我在使用VS Dev Web服务器时也遇到了同样的错误.我还没试过完整的IIS.
别人都有线索?
谢谢
更新:
我修了几个nuget参考文献,似乎有点稳定,然后今天早上又发生了.VS输出窗口显示:
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.Mobile\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Web.Mobile.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Users\peter.jones\AppData\Local\Temp\Temporary ASP.NET Files\root\a4aa93f7\dfa23a50\App_Web_rpzlbjhw.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Users\peter.jones\AppData\Local\Temp\Temporary ASP.NET Files\root\a4aa93f7\dfa23a50\App_Web_c1rjct4s.dll', Symbols loaded.
The program '[11072] iisexpress.exe: Managed (v4.0.30319)' has exited with code -1073741816 (0xc0000008) 'An invalid handle was …Run Code Online (Sandbox Code Playgroud) 有没有人知道一些关于为Visual Studio 2010编写插件/插件的好文章/教程?
我试图找出MEF的构造函数注入属性.我不知道如何告诉它加载构造函数的参数.
这是我正在尝试加载的属性
[ImportMany(typeof(BUsers))]
public IEnumerable<BUsers> LoadBUsers { get; set; }
Run Code Online (Sandbox Code Playgroud)
这是我用来导入程序集的代码.
try
{
var catalog = new AggregateCatalog();
catalog.Catalogs.Add(new AssemblyCatalog(System.Reflection.Assembly.GetExecutingAssembly()));
catalog.Catalogs.Add(new DirectoryCatalog("DI"));
var container = new CompositionContainer(catalog);
container.ComposeParts(this);
}
Run Code Online (Sandbox Code Playgroud)
这是我正在尝试加载的类
[Serializable]
[Export(typeof(BUsers))]
public class EditProfile : BUsers
{
[ImportingConstructor]
public EditProfile(string Method, string Version)
{
Version = "2";
Action = "Edit";
TypeName = "EditProfile";
}
Run Code Online (Sandbox Code Playgroud) 请参阅下文,了解正在进行的操作
我有一个非常奇怪的问题,捕获的异常是null.
该代码使用MEF并努力报告组合错误.使用调试器我可以看到抛出异常(a InvalidOperationException)但是当它被下面代码中的最后一个catch块捕获时,ex变量为null.在调试器和正常执行代码时都是如此.
static T ResolveWithErrorHandling<T>() where T : class
{
try
{
IocContainer.Compose(Settings.Default.IocConfiguration);
return IocContainer.Resolve<T>();
}
catch (ReflectionTypeLoadException ex)
{
// ... special error reporting for ReflectionTypeLoadException
}
catch (Exception ex)
{
// ex is null - that should not be possible!
// ... general error reporting for other exception types
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
我用注释替换的代码是格式化错误消息的非常简单的代码.那里没什么奇怪的.
我试图改变代码以发现可能产生的影响:
ReflectionTypeLoadException),则最终catch块中捕获的异常不再为null.InvalidOperationException为第一个catch块添加一个catch块,则该块中捕获的异常不为null.InvalidOperationException在两个catch块之间添加一个catch块,则该块中捕获的异常为null.该项目使用代码契约,并对编译器生成的代码进行后处理以检查合同.不幸的是,我没有找到一种方法来摆脱测试目的,而不对项目进行大手术.
我目前的解决方法是不捕获ReflectionTypeLoadException并改为分支ex一般异常处理程序中的类型. …
我试图找出是否有任何经验或想法使用MEF(Managed Extensible Framework(微软的新插件框架)与ASP.NET MVC.我需要创建一个标准的ASP.NET MVC,我有.但我需要提供额外的功能,如视图和控制器等,取决于我是否添加插件.它不需要动态编译即源代码......但是我放入系统的DLL ..
有什么方法可以在应用程序启动时动态加载DLL,然后在主系统中合并一个VIEWS和CONTROLLERS吗?我不知道我是否走在正确的轨道上.
然后,我想在应用程序附带的"STANDARD"视图中,我可以使用"IF THEN"来查看是否加载了插件并在用户控件中加载了MERGE.
好吧,我在这里大声说话,但我想你明白我的意思.
有任何想法吗?
最近宣布的.NET 4.0托管可扩展性框架(MEF)是一个依赖注入框架吗?模式和实践中的Microsoft Unity在4.0中是否会过时?MEF与Unity这样的框架相比如何?
请帮忙 - 我迷路了!
我正在编写一个小型桌面应用程序,它有一些控件和一些屏幕.这应该稍后与一个小网站集成,也有一些屏幕.我们的想法是让用户编辑视频并选择图像,然后与朋友分享他们的结果.
桌面应用程序使用的是C#WPF,即网站 - ASP.Net MVC.
我读到使用MVVM可以更轻松地将应用程序增加到几个屏幕.所以我开始搜索并发现了Caliburn.Micro和MVVM.Light.我已经下载了一些教程,但正如我准备深入研究材料一样,我在SO上找到了.那里还有Prism,MEF,Unity,ReactiveUI - 这太过分了!
我学习新东西很糟糕 - 学习WPF和ASP.Net MVC花了我很多年的时间.我不想研究很多新材料,只是为了稍后发现它不相关.而且我没有一位建筑师来指导我.
所以我的问题是:你能否对这些框架和技术进行透视,并建议我应该把重点放在研究和使用上(特别是后来用于Windows 8的内容)?
我下载了Prism v4并运行了安装程序.我进入目录并运行以下两个批处理文件:
当我编译这些应用程序时,我没有看到任何真正的区别.我已经搜索了MEF vs Unity,我发现了一些优点/缺点,但没有任何具体说明是否一个人在Prism中使用"更好"(我知道这是主观的).我想也许如果我列出我的要求,有人可以指出我使用的正确技术(即使它不是Prism 4).
例如:
基本用户可能有以下选项:
所有相关地址都在Address.dll内.
高级用户可能具有以下选项:
所有相关地址都在Address.dll内.
管理相关的所有项目都在Admin.dll中.
应用程序不应该实际引用这些DLL中的任何一个,我打算反映它们,以便如果有100个不同的模块,并且用户只能访问其中的2个,则只下载和使用其中的2个.有权访问其中10个的用户获得10个用户.
我已经通过WebService解决了下载DLL.:)
如何在同一个项目中将Managed Extensibility Framework(MEF)与ASP.NET MVC 4和ASP.NET Web API集成?
考虑一个带有MVC控制器HomeController和Web API控制器的示例应用程序ContactController.两者都具有类型的属性IContactRepository,它们依赖于MEF来解决.问题是如何将MEF插入MVC和Web API,以便通过MEF创建实例.
HomeController的:
/// <summary>
/// Home controller. Instruct MEF to create one instance of this class per importer,
/// since this is what MVC expects.
/// </summary>
[Export]
[PartCreationPolicy(CreationPolicy.NonShared)]
public class HomeController : Controller
{
[Import]
private IContactRepository _contactRepository = null;
public ActionResult Index()
{
return View(_contactRepository.GetAllContacts());
}
}
Run Code Online (Sandbox Code Playgroud)
的ContactController:
/// <summary>
/// Contact API controller. Instruct MEF to create one instance of …Run Code Online (Sandbox Code Playgroud) 在我的Asp.Net MVC应用程序中,我有一些视图文件(.cshtml),它引用了一个外部库,它将在运行时加载.所以在应用程序启动后,我通过Assembly.Load加载程序集,我通过自己的自定义注册控制器,ControllerFactory每件事都没问题.
但是,在一些引用动态加载程序集的视图中,抛出:
编译器错误消息:CS0234:命名空间"MyApp"中不存在类型或命名空间名称"MyDynamicNamespace"(您是否缺少程序集引用?)
告诉razor编译器无法解析相关程序集的异常.
我的问题是,有没有办法在运行时注册程序集,剃刀编译器能够访问它并解决它?
请注意,我无法使用BuildManager.AddReferencedAssembly方法,因为我的程序集必须在应用程序启动后加载,并且BuildManager不支持它.
mef ×10
asp.net-mvc ×3
c# ×3
.net ×2
composite ×1
iis-express ×1
mvvm ×1
mvvm-light ×1
plugins ×1
prism ×1
prism-4 ×1
razor ×1
signalr ×1
vsx ×1
wpf ×1