小编Luk*_*ett的帖子

生成错误:您必须添加对System.Runtime的引用

我正在准备一个全新的ASP.NET MVC 5.1解决方案.我正在添加一堆NuGet包,并与Zurb Foundation等进行设置.

作为其中的一部分,我添加了对内部NuGet包的引用,这是一个可移植类库,我认为这会导致构建服务器出现问题.

TeamCity失败了构建:

"System.Object"类型在未引用的程序集中定义.您必须添加对程序集'System.Runtime,Version = 4.0.0.0的引用

我最初在编译Razor网页时添加了相同或类似错误的修复程序,修复了该修复程序 web.config

<compilation ... >
  <assemblies>
    <add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </assemblies>
</compilation>
Run Code Online (Sandbox Code Playgroud)

但问题尚未解决.

c# asp.net-mvc portable-class-library

192
推荐指数
6
解决办法
16万
查看次数

no-cache和must-revalidate之间的区别

来自RFC 2616

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1

无缓存

如果no-cache指令没有指定字段名,那么缓存绝不能使用响应来满足后续请求,而不能成功地与源服务器重新验证.这允许源服务器甚至通过已配置为返回对客户端请求的陈旧响应的缓存来防止缓存.

因此它指示代理重新验证所有响应.

比较这个

必重新验证

当高速缓存接收到的响应中存在must-revalidate指令时,该高速缓存必须在该条目变为陈旧后才能响应后续请求而不首先使用源服务器重新验证它

因此,它指示代理重新验证陈旧的响应.

特别是关于no-cache,用户代理实际上是如何根据经验处理这个指令的?

什么是点no-cache,如果有must-revalidatemax-age

看到这个评论:

http://palpapers.plynt.com/issues/2008Jul/cache-control-attributes/

无缓存

虽然这个指令听起来像是指示浏览器不缓存页面,但是有一个微妙的区别.根据RFC,"no-cache"指令告诉浏览器它应该在从缓存提供页面之前重新验证服务器.重新验证是一种简洁的技术,可以让应用程序保留带宽.如果浏览器缓存的页面没有更改,则服务器只向浏览器发出信号,并从缓存中显示该页面.因此,浏览器(理论上至少)将页面存储在其缓存中,但仅在与服务器重新验证后才显示该页面.在实践中,IE和Firefox已经开始处理no-cache指令,就像它指示浏览器甚至不缓存页面一样.我们大约一年前开始观察这种行为.我们怀疑这种变化是由于该指令广泛(和不正确)使用以防止缓存而引起的.

有没有人在这方面有更多的官方?

更新

当且仅当无法验证对表示的请求可能导致不正确的操作(例如无声的未执行的金融交易)时,服务器才应使用必须重新验证的指令.

这是我从未想到的事情.RFC表示不要轻易使用must-revalidate.问题是,对于Web服务,您必须采取负面视图并假设您的未知客户端应用程序最糟糕.任何陈旧的资源都有可能导致问题.

我刚才考虑的其他事情,没有Last-Modified或ETags,浏览器只能再次获取整个资源.但是对于ETags,我发现Chrome至少似乎在每次请求时重新验证.这使得这两个指令都没有实际意义或至少命名不佳,因为它们无法正确地重新验证,除非请求还包含其他标题,然后导致"始终重新验证".

我只是想让最后一点更清楚.通过设置must-revalidate但不包括ETag或Last-Modified,代理只能再次获取内容,因为它没有任何内容可以发送到服务器进行比较.

但是,我的经验测试表明,当ETag或修改后的头数据包含在响应中时,代理总是会重新验证,无论是否存在must-revalidate头.

所以点must-revalidate是强制"旁路缓存"时,它会过时,如果当您设置了一生/年龄这只能发生,从而must-revalidate设置上,没有年龄或其他头的响应,它实际上就变成等同于no-cache自响应将立即被视为陈旧.

- 所以我要终于标记Gili的答案了!

http

163
推荐指数
3
解决办法
12万
查看次数

通过MSDeploy.exe从WMSvc获取404

从安装了Web管理服务的Windows 8到Windows Server 2012(IIS 8),我可以使用W8上的IIS管理器来管理远程服务器,但是当我执行以下命令时,我从WMSvc获得了404.7:

msdeploy.exe" -verb:dump -source:contentPath=c:\InetPub\wwwroot,computerName=https://uktnws01:8172/MsDeploy.axd,userName=corp\administrator,password=WMSvcIsCrap,authType=Basic -allowUntrusted
Run Code Online (Sandbox Code Playgroud)

我尝试了各种组合和参数.我可以telnet到那个端口,我知道它是开放的.

我只是从Windows中删除管理服务功能并重新启动.我会给苏打水倒一些零食.在此期间,如果您有任何想法,请分享.

加入我下面的实时博客并按照操作行动.

更新1

随着管理服务被删除,我现在得到了

错误:无法连接到远程服务器错误:无法建立连接,因为目标计算机主动拒绝它192.168.2.22:8172错误计数:1.

第二行是新消息!哇噢.

更新2

好吧,现在事情变得越来越糟.自重新安装以来,远程IIS控制台将在证书上发出警报,然后说,

服务器不接受远程连接.

但我认为这是因为我可能没有重新启用远程管理,除了安装该死的东西.

更新3

启用远程管理后,远程IIS再次运行,但404已返回.只是为了SEO的利益,这里是完整的错误:

Error Code: ERROR_DESTINATION_NOT_REACHABLE More Information: Could not connect to the remote computer ("uktnws01"). On the remote computer, make sure that Web Deploy is installed and that the required process ("Web Management Service") is started.  Learn more at http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_DESTINATION_NOT_REACHABLE.
Error: The remote server returned an error: (404) Not Found.
Error count: 1.
Run Code Online (Sandbox Code Playgroud)

更新4

通过VPN到客户端尝试对另一个Web服务器执行相同的命令,这是一个魅力!看起来IIS在我绝对打屁股的新2012版本上是不感兴趣的.

更新5

我为WMSvc启用了失败的请求跟踪,并且已经看到404.7来自RequestFilteringModule模块.根据文档,404.7是"文件扩展名被拒绝".

http://www.iis.net/configreference/system.webserver/security/requestfiltering

但是,为.axd文件添加显式服务器规则并没有帮助.有兴趣看到这个模块,因为它对URL长度和内容大小施加了限制.您能想象在IIS托管的WCF应用程序中对此进行故障排除!哈哈.我真的哭了.

更新6 …

iis msdeploy iis-8

116
推荐指数
7
解决办法
5万
查看次数

是否需要HTTP PUT请求才能包含正文?

我很难在标准中找到明确的规范.我有一个HTTP客户端Content-Length: 0在执行PUT请求时没有包含头文件,我没有指定正文,服务器也被这些请求搞糊涂了,我想知道应该指责哪个程序.

http

76
推荐指数
3
解决办法
7万
查看次数

如何使用Git Revert

如何git revert使用?

这可能听起来像一个重复的问题,但是当人们问它时,响应通常git reset是按照Reit对Git中的SHA哈希的提交使用

然后当有人询问如何使用git reset人们回复说你应该git revert按照Git使用- 如何回滚

在你知道它之前,有8个不同的人出现了他们自己独特的方法来保存OP的屁股,所有这些都是你的头脑.

因此,让我们试着坚持简介并写一个假人指南git revert.

一个场景:你已经承诺了两次掌握和坏.你已经推动了,其他人也做了不好的改变.

你想撤消它.这不是你自己可以在代码中手动撤销的东西,比如一些巫师或包管理器改变了大量的东西 - 你只想把它全部放回去.

这就是源控制的全部内容.我很确定这很简单.

好的,你打算用,git revert但怎么样?

跑完之后git revert你还得做点什么吗?您是否必须提交已恢复的更改或确实还原直接提交到repo或什么?

显然你需要再次推进并且可能会向球队宣布你的球.

git

72
推荐指数
4
解决办法
8万
查看次数

SSL证书是否绑定到服务器的IP地址?

我们在两个不同的物理办公地点有两个不同的ldap提供商.

当我将笔记本电脑连接到一个位置并且我从端口'(在Websphere 6.1中)检索以导入ldap提供程序的ssl证书时,我可以在没有问题的情况下对相应的ldap进行身份验证.如果我将笔记本电脑带到另一个办公室(默认情况下使用其他ldap提供商)并且我插入笔记本电脑,我的笔记本电脑上的WAS将无法启动,因为它显示"找不到可靠的ssl证书".

如果我再次从端口'检索并重新导入证书,那么它再次起作用.

请注意,我的WAS总是尝试连接到一个ldap,它对另一个没有用.

如果我回到另一个办公室,我会得到同样的错误,直到我从该位置重新导入.ldap连接点是ldap.something.com:636,并且在具有相同FQDN的两个位置都可以ping.

但是当它被ping时,它会解析为每个办公地点的不同IP地址.为什么我会看到这种行为?

SSL Certs是否以某种方式绑定到特定的IP地址?

如果是,那么我需要为每个办公地点维护一套不同的证书,对吧?

请注意,我检查过无法调整dns服务器以将主机名解析为相同的IP地址.

有人能提供一些见解吗?

websphere ssl-certificate

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

59
推荐指数
4
解决办法
3万
查看次数

web.config编译/组件元素有什么作用?

我有一个问题,在新的MVC项目上工作,一旦我添加Html.Partial("Name")到我的_Layout.cshtml页面,ASP.NET将在页面加载时抛出此异常:

错误CS0012:定义了"System.Object"类型不在引用的程序集中.添加对程序集"System.Runtime,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a"的引用.

修复是将其添加到web.config编译元素:

  <assemblies>
    <add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </assemblies>
Run Code Online (Sandbox Code Playgroud)

我很想知道为什么这会解决这个问题.

奇怪的是,我正在使用的新MVC应用程序有一大堆WebForms ASPX页面可供使用.我已经将大量遗留的WebForms内容复制到这个新的MVC项目中,大量的代码,一切正常,没有Html.Partial调用,甚至我的MVC视图呈现.

那么地球上究竟发生了什么?这个配置做了什么,为什么不是正常的项目引用和目标框架设置呢?

.net asp.net asp.net-mvc-4

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

是否有默认HTTP标头的常量?

基本上,同样的问题我要求默认的内容类型,但这次是Headers:Microsoft是否为标准的HTTP标题名称创建了一个充满常量的类,还是我必须自己编写?

asp.net asp.net-mvc http-headers

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

NuGet Package Restore找不到包,没有Source

我有一个由TeamCity构建的TeamCity NuGet提要包,但是一个依赖的TC项目在包恢复期间无法看到它.

[14:05:02] [Exec] E:\ TeamCity-BuildAgent\work\62023563850993a7\Web.nuget \nuget.targets(88,9):无法找到"MarkLogicManager40"软件包的版本"1.0.17.0".

[14:05:02] [Exec] E:\ TeamCity-BuildAgent\work\62023563850993a7\Web.nuget \nuget.targets(88,9):error MSB3073:命令""E:\ TeamCity-BuildAgent\work\62023563850993a7\Web.nuget \nuget.exe"install"E:\ TeamCity-BuildAgent\work\62023563850993a7\ProductMvc\packages.config"-source"" - RequestConsent -solutionDir"E:\ TeamCity-BuildAgent\work\62023563850993a7\Web \""退出代码1.

请注意,sourceNuGet命令行中的参数为空.这可能是原因吗?

.net msbuild teamcity nuget

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