我很难描述确切的问题,但似乎只是"只是"智能感知问题,只能在剃刀(.cshtml)视图中显示.现在已经看了2天所以我真的可以使用一些帮助.
我正在使用VS2015 Pro,使用标准模板启动了一个新的Web MVC应用程序(WebApplication2).在该应用程序内部一切正常.
现在我添加了一个类库项目(默认的一个,而不是"Package"模板),并添加了WebPages,MVC和razor nuget包(如果相关的话).一旦在类库中创建新视图,问题就会变得明显.似乎所有对系统库的引用都在cshtml文件中不可用.没有打开文件我根本没有错误,但是当我打开视图时,所有系统类都有红色波浪线,并且错误列表(Build + IntelliSense)突然包含每个系统*库的大量错误,例如:
The type or namespace name 'Mvc' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)
Run Code Online (Sandbox Code Playgroud)
这些包括Linq和WebApplication2(测试项目),因此不仅仅是System.Web.
我检查和完成的事情基于堆栈上的类似答案:
我们发现这个的实际情况是我们的大型Web应用程序在VS2010中运行良好,但随后我们决定升级到2015和.Net 4.6.类库中的视图标记为嵌入式资源,并使用虚拟路径提供程序加载.上面的案例是一个超简化的可重复项目,我和我的两个同事的计算机上的症状是相同的.
如果我错过了一些关键信息,请问问.
介绍
我正在努力将Java库转换为.Net.
该库是多态假名解密的实现,将在荷兰用于解密欧洲eIDAS电子识别服务领域的"BSNk".
我已经转换了大部分库,并与Java版本的作者一起验证了结果.下一步是让.Net库实际上可以用于荷兰公司,这就是我在过去两周一直被困住的地方.
算法使用PEM文件中的椭圆曲线作为计算的一部分.但是客户端(库的用户)将以p7和p8文件的形式接收它,您可以将其转换/解压缩/解码(?)到PEM数据.
题
如何从te#7 + p8文件到C#中的PEM字符串?
最好只使用System.Security.Cryptography.Pkcs,但我目前在其他部分使用BouncyCastle(因为Java版本确实如此).下面没有列出,但我也尝试使用SignedCms和EnvelopedCms来做这件事,但除此之外什么也没有(对我来说)难以理解的错误.我在密码学方面没有很多经验,但在过去的几周里学到了很多东西.
如果我理解正确,我会解释这个,因为p7文件是PEM消息的信封,并且信封是使用p8文件中的私钥进行签名/加密的?
码
public static string ConvertToPem(string p7File, string p8File)
{
var p7Data = File.ReadAllBytes(p7File);
var p8Data = File.ReadAllBytes(p8File);
// Java version gets the private key like this:
// KeyFactory.getInstance("RSA").generatePrivate(new PKCS8EncodedKeySpec(bytesArray));
var privateKey = PrivateKeyFactory.CreateKey(p8Data);
var parser = new CmsEnvelopedDataParser(p7Data);
var recipients = parser.GetRecipientInfos().GetRecipients().OfType<RecipientInformation>();
var recipientInformation = recipients.First();
//Java version gets the message like this:
//final byte[] message = keyInfo.getContent(new JceKeyTransEnvelopedRecipient(key).setProvider("BC"));
var keyInfo = (KeyTransRecipientInformation)recipientInformation;
var message = keyInfo.GetContent(privateKey);
return Encoding.ASCII.GetString(message); …
Run Code Online (Sandbox Code Playgroud) 简短: 对于每个请求创建一个新的OWIN上下文,我希望能够针对某些资源类型或路径(图像,css,js)阻止这种情况.
完全: 在我们的应用程序启动中,我们注册了一个dbcontext创建委托,以便每个请求只创建一次dbcontext.
public virtual void Configuration(IAppBuilder app)
{
app.CreatePerOwinContext(Factory.DbContextCreateDelegate);
}
Run Code Online (Sandbox Code Playgroud)
如果客户端请求样式表,则将创建OWIN上下文,因此还将创建新的dbcontext.我希望能够根本不创建OwinContext,或者至少能够阻止某些请求类型/路径执行某些"on create"回调.
或者,正如我所知,为什么(部分)"禁用"OWIN的方法会导致问题,我想听听最佳做法是什么?如何在不为每个请求创建数据库上下文的情况下提供静态文件?(这里小小的一点是我们的静态文件是使用虚拟路径提供程序提供的嵌入式资源..."普通"静态文件也会出现问题.)
背景:昨天我开始注意到我们的应用程序的某些部分偶尔没有加载.有时它是单个图像,有时是整个CSS文件.经过一些调查后,我看到一些请求抛出了http 500错误,抛出的异常通常是SQL连接超时(但也有其他异常).
虽然我们当然试图修复这些例外.我确实认为,当客户端请求单个图像时,我们的应用程序设置数据库连接完全是胡说八道...这是单个页面请求的大约10个数据库连接???
对我来说就像这样一个明显的问题,但我昨天一直在谷歌搜索,没有找到任何接近解决方案或解决方法.我错过了什么堆栈?
编辑:我只是尝试了一种方法,我没有实际创建dbcontext而是创建存根.事后看来,这显然不是这个问题的解决方案,因为OwinContext试图继续它的进程,并且当它试图使用该存根dbcontext从数据库中获取用户时将严重失败.dbcontext不是问题,我需要完全绕过Owin ......我想......
c# ×2
asp.net-mvc ×1
bouncycastle ×1
cryptography ×1
dbcontext ×1
intellisense ×1
owin ×1
pem ×1
pkcs#7 ×1
razor ×1
request ×1
static-files ×1