我们有一个asp.net 4.0项目,它使用了几个依赖于log4net 1.2.10.0版本的框架.今天我尝试包含一个依赖于log4net版本1.2.11.0的新框架,从那时起我就被困住了:
log4net 1.2.10.0有publickeytoken = 1b44e1d426115821
log4net 1.2.11.0有publickeytoken = 669e0ddf0bb1aa2a
由于这些不同,我不能通过web.config中的运行时元素使用程序集重定向(使所有框架使用相同版本的log4net)或代码库(仅使新框架使用版本1.2.11.0).
我有什么选择?
(以及为什么哔哔声会让log4net不断更改版本之间的publickeytokens,因为据我所知,丢失的密钥是在1.2.9.0和1.2.10.0版本之间切换的原因,他们是否再次丢失密钥?我会自愿提供我的Dropbox如果他们需要它,以保证安全......)
编辑:好的,所以log4net的人显然认为用两个密钥发布是一个好主意,但这意味着你使用的每个框架需要就他们喜欢的两种风格中的哪一种达成一致,或者那些框架不能正常工作在同一个应用程序域中.我是唯一发现这个可怕想法的人吗?如果每个人都这样做,那么一切都会崩溃,对吧?
Edit2:正如我所说,我没有在我的业务代码中使用log4net,但是我使用了几个依赖于1.2.10.0的框架,当我尝试使用依赖于1.2.11.0的新框架时出现问题(新密钥) ),所以Stefans的回答并不适用,因为新的框架会期望新的密钥,而不是旧的密钥
我们正在尝试使以下方案工作:
我们使用asp:scriptmanager/CompositeScripts将我们的脚本组合成几个脚本块,但是在每次部署到测试系统之后,测试人员都无法获得css和javascript(浏览器缓存)的更新版本.对于CSS,我们已经定义了自己的css用户控件,它将一个Siteversion参数"?v = 1.0.190"附加到css url.此版本转换在web.config/appsettings中定义,并在每次部署时都会受到影响.
我们希望能够为javascripts使用相同的策略,但到目前为止我还没有取得任何成功.渲染脚本标记时.Scriptmanager渲染
<script src="/ScriptResource.axd?d=..." type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
鉴于当前配置的siteversion是1.0.190,我希望它呈现
<script src="/ScriptResource.axd?d=...&v=1.0.190" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
如何从脚本管理器获取"脚本"html输出,以便我可以更改它?它似乎不存在于Render,RenderChildren或RenderControl中呈现的内容中
你的安德烈亚斯
我们将Asp.Net WebAPI与实体框架(延迟加载)一起使用,并在将数据返回给客户端之前使用Json.net将数据序列化为json.
我们正在经历间歇性的内存使用突然激增,我们怀疑它可能源于json.net在序列化数据时没有识别引用循环(因为实体框架可能正在使用代理类进行一些延迟加载voodoo,这些代码类在json.net的雷达下)
我以为我会限制Json.net被允许用于序列化数据的深度(至少在发生这种情况时我们会得到一个明智的异常,所以我们可以在数据模型中修复它),但我很快就发现了MaxDepth JsonSerializerSettings的属性仅在反序列化对象时启动.
在序列化时是否有任何已知的方法对json.net施加限制?
我认为在Application_BeginRequest中设置Entity对象上下文,将它存储在Request.items中,在整个请求中使用它并将其部署在Application_EndRequest中是明智的.这样,上下文始终可用,我可以在我的视图中导航实体框架对象图,延迟加载我尚未急切获取的内容.
我认为这会让它像在Ruby on Rails上开发一样.
可能是因为说出这样的异端邪说我应该被枪杀,但它太疯狂了它可能会起作用:)
我无法在ASP.NET MVC上启动Application_BeginRequest和..EndRequest .他们不是被解雇了吗?我需要做什么特别的伎俩?
我正在尝试让PowerShell将文件从远程计算机(我通过AD拥有管理员权限)复制到本地计算机.它在最奇怪的地方失败了.这是脚本的片段:
$configs = Get-ChildItem -Recurse -ErrorAction SilentlyContinue -Filter "*.config" $serverUNCPath
foreach($config in $configs){
$config_target_dir = $dest.Path + $config.Directory.FullName.Replace($serverUNCPath,"")
if(Test-Path -Path $config_target_dir){
Copy-Item $config -Destination $config_target_dir
}
}
Run Code Online (Sandbox Code Playgroud)
它失败了
Cannot find path 'D:\ServerDeploy\TestMachine1\website\web.config' because it does not exist.
At :line:39 char:12
+ Copy-Item <<<< $config -Destination $config_target_dir
Run Code Online (Sandbox Code Playgroud)
路径D:\ServerDeploy\TestMachine1\website存在.我为此疯狂.
我该怎么办才能修复它?
我试图以这样的 JSON 结束:
{"KIBANA_INDEX":"whatever"}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用JsonPropertyAttribute这样的:
[JsonProperty(PropertyName ="KIBANA_INDEX")]
public string KibanaIndex{ get; set; }
Run Code Online (Sandbox Code Playgroud)
我最终得到这样的 JSON:
{"kibanA_INDEX":"whatever"}
Run Code Online (Sandbox Code Playgroud)
有什么办法可以让 Newtonsoft.Json 屈服于我的意愿吗?
我用
$(window).bind( ... )
Run Code Online (Sandbox Code Playgroud)
设置事件处理程序,但由于某种原因,我一直在丢失事件处理程序(我认为).在调试(firebug)时是否有任何方法可以查看哪些自定义事件已添加到给定元素?
你的安德烈亚斯
我有一个页面,需要检查它是否包含在iframe中,或者无论页面是否是首页都无效.
我试过这样做:if(window == window.parent)它适用于Opera,FF和Chrome,但不适用于IE.在IE中我应该使用一些技巧吗?
.net ×3
javascript ×2
json.net ×2
.net-5 ×1
asp.net ×1
asp.net-mvc ×1
collections ×1
copy-item ×1
dll ×1
events ×1
generics ×1
iframe ×1
jquery ×1
lazy-loading ×1
list ×1
log4net ×1
powershell ×1