【发布时间】:2014-07-06 19:31:26
【问题描述】:
我的 ASP.NET MVC 5 应用程序正在使用我的本地 IIS (Windows 7),在我不得不开始使用 Microsoft.SqlServer.Types NuGet 包之前它运行良好。因为包有本地程序集,所以它们必须在运行时专门加载。
我遇到的问题是,在我重建应用程序并通过浏览器访问它之后,IIS 会加载并锁定本机程序集。如果我进行更改并再次重建,Visual Studio 将失败并说程序集被另一个进程 IIS 锁定。我发现的唯一解决方法是在构建之前继续重新启动 IIS,当我可能需要根据我所做的更改数量在一天内重建数百或数千次时,这是不切实际的。
有没有更合适的解决方法?就像告诉 Visual Studio 不要打扰本机程序集?帮助将不胜感激。
这是我加载程序集的方式:
[assembly: WebActivatorEx.PreApplicationStartMethod(typeof(X.Mvc.App_Start.SqlServerTypesConfiguration), "LoadAssemblies")]
namespace X.Mvc.App_Start {
public static class SqlServerTypesConfiguration {
public static void LoadAssemblies() {
SqlServerTypes.Utilities.LoadNativeAssemblies(System.Web.Hosting.HostingEnvironment.MapPath("~/bin"));
}
}
}
【问题讨论】:
-
在您的预构建配置中添加一个
iis_reset命令。整个情况虽然很糟糕.. 无论您做什么,您的调试能力都会停止 - 重置 IIS / 应用程序池会导致调试会话的初始加载时间飙升。 -
正是我需要的,谢谢!我将不得不忍受 IIS 不断地重新加载,但这很好,因为每次我重建之前它都会这样做,而这在一天之内有很多很多次。发布一个答案,这样我就可以给你功劳了。
-
添加为答案:)
标签: c# asp.net visual-studio iis visual-studio-2013