小编Jea*_*amp的帖子

无法加载文件或程序集'System.Web.WebPages.Razor,Version = 2.0.0.0

我刚刚升级了MVC 3项目(ASP.net 4)中的包,现在我在访问该项目中的页面时收到以下错误消息:

'/ MyApplication'应用程序中的服务器错误.

无法加载文件或程序集"System.Web.WebPages.Razor,版本= 2.0.0.0,文化=中性公钥= 31bf3856ad364e35"或它的一个依赖.定位的程序集的清单定义与程序集引用不匹配.(来自HRESULT的异常:0x80131040)描述:在执行当前Web请求期间发生了未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.IO.FileLoadException:无法加载文件或程序集'System.Web.WebPages.Razor,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)

来源错误:

在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.

程序集加载跟踪:下列信息有助于确定程序集"System.Web.WebPages.Razor,版本= 2.0.0.0,文化=中性公钥= 31bf3856ad364e35"无法加载.

===预绑定状态信息===日志:用户= IIS APPPOOL\ASP.NET v4.0日志:DisplayName = System.Web.WebPages.Razor,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35(完全指定)LOG:Appbase = file:/// C:/.../ LOG:初始PrivatePath = C:...\bin调用程序集:Microsoft.Web.Helpers,Version = 2.0.0.0,Culture = neutral ,PublicKeyToken = 31bf3856ad364e35.===日志:此绑定在默认加载上下文中启动.日志:使用应用程序配置文件:C:...\web.config日志:使用主机配置文件:C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet.config日志:使用C中的机器配置文件: \的Windows\Microsoft.NET\Framework64\v4.0.30319\CONFIG\machine.config中.日志:后策略引用:System.Web.WebPages.Razor,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35日志:尝试下载新的URL文件:/// C:/Windows/Microsoft.NET/Framework64 /v4.0.30319/Temporary ASP.NET Files /.../ cb62a7b2/327a0353/System.Web.WebPages.Razor.DLL.日志:尝试下载新的URL文件:/// C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files /.../ cb62a7b2/327a0353/System.Web.WebPages.Razor/System .Web.WebPages.Razor.DLL.日志:新的URL文件的尝试下载:/// C:/LeGroupeHtmSVN/.../UpDir.Web/bin/System.Web.WebPages.Razor.DLL.警告:比较程序集名称导致不匹配:主要版本错误:无法完成程序集的设置(hr = 0x80131040).探测终止.

堆栈跟踪:

[FileLoadException:无法加载文件或程序集'System.Web.WebPages.Razor,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(来自HRESULT的异常:0x80131040)]
Microsoft.Web.Helpers.PreApplicationStartCode.Start()+ 0

[InvalidOperationException:预应用程序启动初始化方法启动类型Microsoft.Web.Helpers.PreApplicationStartCode引发异常,并显示以下错误消息:无法加载文件或程序集'System.Web.WebPages.Razor,Version = …

dependencies asp.net-4.0 razor asp.net-mvc-3

54
推荐指数
5
解决办法
18万
查看次数

Ninject WithConstructorArgument:没有匹配的绑定可用,并且该类型不可自绑定

我对WithConstructorArgument的理解可能是错误的,因为以下内容不起作用:

我有一个服务,让我们称之为MyService,其构造函数采用多个对象,以及一个名为testEmail的字符串参数.对于此字符串参数,我添加了以下Ninject绑定:

string testEmail = "test@example.com";
kernel.Bind<IMyService>().To<MyService>().WithConstructorArgument("testEmail", testEmail);
Run Code Online (Sandbox Code Playgroud)

但是,在执行以下代码行时,我得到一个异常:

var myService = kernel.Get<MyService>();
Run Code Online (Sandbox Code Playgroud)

这是我得到的例外:

激活字符串时出错没有匹配的绑定可用,并且该类型不可自我绑定.激活路径:
2)将依赖字符串注入到MyService类型的构造函数的参数testEmail中
1)请求MyService

建议:
1)确保已为字符串定义了绑定.
2)如果在模块中定义了绑定,请确保已将模块加载到内核中.
3)确保您没有意外创建多个内核.
4)如果使用构造函数参数,请确保参数名称与构造函数参数名称匹配.
5)如果使用自动模块加载,请确保搜索路径和过滤器正确无误.

我在这做错了什么?

更新:

这是MyService构造函数:

[Ninject.Inject]
public MyService(IMyRepository myRepository, IMyEventService myEventService, 
                 IUnitOfWork unitOfWork, ILoggingService log,
         IEmailService emailService, IConfigurationManager config,
         HttpContextBase httpContext, string testEmail)
{
    this.myRepository = myRepository;
    this.myEventService = myEventService;
    this.unitOfWork = unitOfWork;
    this.log = log;
    this.emailService = emailService;
    this.config = config;
    this.httpContext = httpContext;
    this.testEmail = testEmail;
}
Run Code Online (Sandbox Code Playgroud)

我有所有构造函数参数类型的标准绑定.只有'string'没有绑定,而HttpContextBase的绑定有点不同:

kernel.Bind<HttpContextBase>().ToMethod(context => new HttpContextWrapper(new HttpContext(new MyHttpRequest("", "", "", …
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection exception-handling ninject ninject-2

20
推荐指数
1
解决办法
4万
查看次数

System.ArgumentException:程序集中的重复类型名称

我正在使用EF 4.1开发ASP.Net MVC 3 Web应用程序.从今天开始,我收到此错误:

System.ArgumentException:程序集中的重复类型名称

我无法弄清楚是什么导致了它.执行查找时,它在我的存储库中发生:

public virtual T GetById(long id)
{
    return dbset.Find(id);
}
Run Code Online (Sandbox Code Playgroud)

这是堆栈跟踪:

[ArgumentException: Duplicate type name within an assembly.]
   System.Reflection.Emit.ModuleBuilder.CheckTypeNameConflict(String strTypeName, TypeBuilder enclosingType) +9544354
   System.Reflection.Emit.AssemblyBuilderData.CheckTypeNameConflict(String strTypeName, TypeBuilder enclosingType) +53
   System.Reflection.Emit.TypeBuilder.Init(String fullname, TypeAttributes attr, Type parent, Type[] interfaces, Module module, PackingSize iPackingSize, Int32 iTypeSize, TypeBuilder enclosingType) +178
   System.Reflection.Emit.ModuleBuilder.DefineType(String name, TypeAttributes attr, Type parent, Type[] interfaces) +118
   System.Data.Objects.Internal.ProxyTypeBuilder.get_TypeBuilder() +299
   System.Data.Objects.Internal.ProxyTypeBuilder.CreateType(ModuleBuilder moduleBuilder) +227
   System.Data.Objects.Internal.EntityProxyFactory.BuildType(ModuleBuilder moduleBuilder, ClrEntityType ospaceEntityType) +63
   System.Data.Objects.Internal.EntityProxyFactory.TryCreateProxyType(EntityType ospaceEntityType) +193
   System.Data.Objects.Internal.EntityProxyFactory.GetProxyType(ClrEntityType ospaceEntityType) +104
   System.Data.Common.Internal.Materialization.Translator.Visit(EntityColumnMap columnMap, TranslatorArg arg) …
Run Code Online (Sandbox Code Playgroud)

entity-framework-4 asp.net-mvc-3

13
推荐指数
2
解决办法
1万
查看次数

是否可以在Visual Studio中导入现有的SSRS报告?

升级计算机时,我们丢失了用于创建SSRS报告的Visual Studio项目.但是,数据源和报告仍然存在于服务器上.有没有办法使用SQL服务器上的内容重新创建VS项目?有没有办法创建一个新的Reporting Services项目并导入其中的现有数据源和报告?

我相信报告最初是使用VS 2005创建的.

visual-studio reporting-services

10
推荐指数
2
解决办法
3万
查看次数

ASP.Net MVC:使用RedirectToAction()将字符串参数传递给操作

我想知道如何使用RedirectToAction()传递字符串参数.

假设我有这条路线:

routes.MapRoute(
  "MyRoute",
  "SomeController/SomeAction/{id}/{MyString}",
  new { controller = "SomeController", action = "SomeAction", id = 0, MyString = UrlParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)

在SomeController中,我有一个动作做一个重定向,如下所示:

return RedirectToAction( "SomeAction", new { id = 23, MyString = someString } );
Run Code Online (Sandbox Code Playgroud)

我尝试使用someString ="!@#$%?&*1"重定向,并且无论我是否对字符串进行编码,它总是会失败.我尝试用HttpUtility.UrlEncode(someString),HttpUtility.UrlPathEncode(someString)和Uri.EscapeUriString(someString)编码它无济于事.

所以我使用TempData来传递someString,但是,我仍然很想知道如何让代码在上面工作,只是为了满足我的好奇心.

url redirect routing url-encoding asp.net-mvc-3

9
推荐指数
1
解决办法
2万
查看次数

如何使DropDownListFor绑定到Nullable <int>属性接受一个空值?

我在ASP.NET MVC cshtml页面中有以下DropDownList:

@Html.DropDownListFor(model => model.GroupId, (IEnumerable<SelectListItem>)ViewBag.PossibleGroups, "")
Run Code Online (Sandbox Code Playgroud)

该属性定义为 public virtual Nullable<int> GroupId

虽然GroupIdNullableselect菜单将不会接受一个空的选项.如果我尝试在不选择组的情况下保存模型,则会收到以下错误消息:

该字段GroupId必须是数字.

选择菜单的呈现方式如下:

<select data-val="true" data-val-number="The field GroupId must be a number." id="GroupId" name="GroupId" class="input-validation-error" data-hasqtip="0" aria-describedby="qtip-0">
    <option value=""></option>
    <option value="1">Test Group</option>
</select>
Run Code Online (Sandbox Code Playgroud)

不,GroupId没有用[Required]属性装饰.

我怎样才能使页面接受空值GroupId

PS GroupIdtype(Nullable<int>)是代码生成的.我使用数据库优先方案.我不知道虽然<Nullable>int和之间有什么区别int

更新:

即使为空选择项的值为零也不会通过非阻碍(JavaScript)验证.但是,-1在客户端和服务器端验证时都要传递一个值.所以现在,我正在使用这个值,在控制器中,我设置GroupIdnull等于-1.

我无法相信这样一个简单的问题没有更简单的解决方案.这是ASP.NET MVC 3中的错误吗?

c# validation nullable asp.net-mvc-3 drop-down-menu

9
推荐指数
1
解决办法
2415
查看次数

实体服务类是否应该调用另一个实体的服务或其存储库

我正在开发一个分层的ASP.Net MVC 3 Web应用程序(EF 4.1):模型,存储库,服务,控制器,某些情况下的ViewModel和视图.

现在我的问题是最好的做法之一.需要访问另一个实体的实体服务类是否应使用其服务或其存储库.例如,假设实体A的服务方法需要在创建A时更新实体B. A的服务类应该使用B的存储库还是服务层?两者都有可能,但最佳做法是什么?就个人而言,我更喜欢一项服务来访问另一项服务.这样,它可以作为访问更多进化方法的说法.

repository service-layer

8
推荐指数
2
解决办法
1320
查看次数

什么是 appSettings 键有效字符?

这很奇怪。我以为我很容易在谷歌上找到这些信息,但我没有取得太大的成功。我只想知道哪些有效字符可用于 Web.config 文件的 AppSettings 部分中的键。例如:

<add key="MySpeed" value="100" />
<add key="My.Speed" value="100" />
<add key="My Speed" value="100" />
<add key="Vélocité" value="100" />
Run Code Online (Sandbox Code Playgroud)

是否允许使用上述所有键?

asp.net configuration-files appsettings

6
推荐指数
1
解决办法
2074
查看次数

带指针事件的 iframe:无;但是里面有一个带有指针事件的 div:auto;

可以有一个带有指针事件的外部 div: none; 和另一个带有指针事件的 div:auto;。外部 div 对点击事件是透明的(即它不会对点击事件做出反应,但底层 html 控件会),而内部 div 会。

但是,我现在有一个场景,我需要用 iframe 做同样的事情,但它不起作用。我设置了指针事件:无;在 iframe 上,但是即使它们有指针事件,应该可点击的内部 div 也不是: auto; 放。

这里还有另一个类似的问题,但由于偏离主题而被关闭。我不明白为什么。这是一个非常有效的 html/css 问题。

html iframe events pointer-events

6
推荐指数
1
解决办法
3197
查看次数

jQuery datepicker在IE中不断重新开放

点击IE 8中的日期后,jQuery的datepicker会继续重新打开,即使在他们的演示页面上也是如此:

http://jqueryui.com/demos/datepicker/

有谁知道如何解决这一问题?我不知道演示页面,但我遇到了与jQuery 1.6.2和jQuery UI 1.8.15完全相同的问题.

此外,设置minDate和maxDate选项似乎在IE 8中没有任何影响.以上似乎也适用于IE 7.

internet-explorer jquery-ui datepicker internet-explorer-8

5
推荐指数
2
解决办法
5814
查看次数