我真的很喜欢在chrome调试器中编辑javascript的能力,但是我发现让调试器从服务器重新获取JavaScript真的有问题.
有时候我必须尽可能地关闭调试器并重新加载框架工作正常 - 但有时(dI无法确定在什么条件下发生这种情况)我必须清除我的临时互联网缓存.有时我发誓我必须完全关闭chrome,然后清除缓存然后在调试器最终向我显示最新脚本之前加载页面.
(注意:Web服务器没有缓存脚本)
我想知道是否有人知道一种快速简便的方法告诉调试器使其所有的javascript无效并在页面重新加载时重新获取它?
[注意:这个问题的原始标题是" C#中的C(ish)风格联盟 ",但正如杰夫的评论告诉我的那样,显然这种结构被称为"歧视联盟"]
请原谅这个问题的冗长.
我们已经在SO中提出了几个类似的声音问题,但他们似乎专注于联盟的内存节约优势或将其用于互操作. 这是一个这样的问题的例子.
我希望有一个联合类型的东西有点不同.
我现在正在编写一些代码来生成看起来有点像这样的对象
public class ValueWrapper
{
public DateTime ValueCreationDate;
// ... other meta data about the value
public object ValueA;
public object ValueB;
}
Run Code Online (Sandbox Code Playgroud)
很复杂的东西,我想你会同意的.事情是,ValueA
只能是几种特定类型(比方说string
,int
和Foo
(这是一个类),ValueB
可以是另一小类.我不喜欢将这些值视为对象(我希望温暖舒适的感觉)编码有点类型安全).
所以我想写一个简单的小包装类来表达ValueA逻辑上是对特定类型的引用这一事实.我打电话给班级,Union
因为我想要实现的目标让我想起了C语言中的联合概念.
public class Union<A, B, C>
{
private readonly Type type;
public readonly A a;
public readonly B b;
public readonly C c;
public A A{get {return a;}}
public B B{get {return b;}}
public C C{get …
Run Code Online (Sandbox Code Playgroud) 所以这是场景,我有一个使用自定义身份验证和成员资格提供程序的Asp.Net应用程序,但我们需要允许完全匿名访问(即)应用程序中的特定文件夹.
在IIS管理器中,您可以设置文件夹的身份验证模式,但设置将保存在C:\Windows\System32\inetsrv\config\applicationHost.config
文件中,如此处所述
为了使安装更容易,如果我可以在我的web.config中设置它会很好,但经过几次尝试后我认为这可能是不可能的.
有没有人知道呢?
非常感谢
有没有人有确定ASP.Net是否在您的计算机上正确注册的防弹方法(理想情况下是C#!)
我正在为ASP.Net应用程序编写安装程序,我需要知道是否应该运行aspnet_regiis
.
目前我们总是运行aspnet_regiis
- 我确保ASP.Net已正确注册,但这不合需要,因为它会提示重新启动所有应用程序池.
网上有几个有用的页面(例如http://www.codeproject.com/KB/cs/iisdetection.aspx),但正如该帖子中的评论所示,注册表通常会报告该ASP. Net已注册但aspnet_regiis
仍需要运行才能配置IIS.用户'JonB'发布了一些看起来应该适用于IIS6(以及启用了IIS6兼容性的IIS7)的东西,但我仍然需要为IIS 7编写单独的检测代码,同时禁用IIS6兼容模式.
那么有人已经破解了这个坚果吗?如果是这样,请告诉我们,因为这样可以节省时间.否则,我将尝试将C++解决方案移植到IIS6的C#中,对于IIS7,我将查看for 的<isapiCgiRestriction>
部分applicationHosts.config
<add path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" />
Run Code Online (Sandbox Code Playgroud)
最后一个问题...
有谁知道Windows 7中的内容是否相同/不同?
我有一堆辅助的XML和XSLT文件,我想在visual studio中编辑和管理.
这些文件在逻辑上不属于我的解决方案中的任何代码项目,因此为了将它们整齐地分组,我在visual studio中创建了一个"虚拟"C#dll项目,并在调试/发布版本中禁用它.
我想知道是否有更好的方法来实现相同的结果(即在解决方案资源管理器中显示所有文件).我认为真正想要的是一个视觉工作室项目类型的"仅限内容",但这样的东西不存在(或者我看起来不够努力?).
我已经玩弄了将文件添加为解决方案项目的想法,但之后它们似乎更难管理,因为创建新的"解决方案项目文件夹"实际上并不在磁盘上创建文件夹.
有人有主意吗?
我很惊讶将任何特定分支的非常小的变化合并到主干中需要多长时间; 在仅仅2k长的单个文本文件中合并几行文本的1-2分钟.
如果可能的话,我希望能更快地融合,但不知道从哪里开始.我做了一个快速谷歌和缓慢合并的可能原因似乎包括以下任何和所有: -
我想我真的想知道如何找出上述哪一点让合并变得如此缓慢.
现在我不知道它是在客户端工作还是在服务器上工作花费最多的时间(我怀疑它是客户端,因为服务器上的CPU使用量不大).我确实认为可能是大量的mergeinfo累积了100多个合并,但我已经做了一个测试,我从一些分支中删除了所有合并信息然后进行了合并,发现同样的慢.
所以我想问的是: - *如何诊断/分析SVN活动?*基于以下信息,是否有一些非常明显的因素导致性能不佳?
谢谢
克里斯
以下是有关SVN设置的一些事实/数据
编辑
可能值得补充的是,当我们分支/合并时,我们从trunk分支并始终将整个分支合并回trunk.所以mergeinfo都在trunk(和branches)文件夹中.
结论
在我的情况下,似乎是磁盘访问是合并过程中的瓶颈 - 当我将源树从我的硬盘移动到我的SSD时,同样的合并从50 +/- 5s到7 +/- 1s.
合并期间在进程资源管理器中观察乌龟SVN进程非常明确:在我的硬盘上进行合并时,I/O字节在大部分时间内介于500kb/s和3Mb/s之间.在SSD上,I/O字节高达10-20Mb/s.[相当令人困惑的是,我的硬盘驱动器上的某些合并速度(和I/O字节同样很高)与我的SSD上的相似 - 在这些情况下,我假设正在读取的很多文件已经在Windows文件缓存中].
我发现以下所有增加的合并速度
背景
客户正在运行我们的Web应用程序.因为响应包含HTTP Cache-Control:no-cache
指令,所以当他们试图查看PDF/Excel/word文件时,通过HTTPS并且正在运行到(相当熟知的)IE8"文件无法写入缓存"错误.问题是,添加此指令不是我们的应用程序(或其配置).
经过一番调查后,我发现IIS7页面输出缓存功能也可以添加此标头
<caching enabled="false" enableKernelCache="false">
<profiles>
<add extension=".htm" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
</profiles>
</caching>
Run Code Online (Sandbox Code Playgroud)
将具有添加Cache-Control:no-cache, private
到响应标头的效果.
我的问题
但令人惊讶的(IMO)事情是,即使您假定禁用该功能(请参阅我上面的配置代码段enabled="false"
),仍会发送响应标头Cache-Control:no-cache, private
.
我是多么愚蠢而对此感到惊讶(我想我可能是)?
Asp.Net非常聪明,并且NavigateUrl
如果你在开头放置〜/,试图解决相对于它所在的控件或相对于应用程序根的控件的超链接.
但我有一种情况,我想明确地将网址设置为相对路径,我不希望它"帮助"我.
Hyperlink的导航URL和HtmlAnchor的href属性都表现出这种行为.是否可以阻止此行为 - 或者我是否必须手动生成标记而不使用控件?
例如,
我在[appRoot]/foo/bar
包含的文件夹中有一个用户控件asp:Hyperlinks
.
我正在使用页面中的控件[appRoot]/myPage.aspx
.我希望href
超链接的属性在渲染时完全等于'donkey.gif'
.
但是,如果我写下面的内容
<asp:Hyperlink runat="server" NavigateUrl="donkey.gif" />
Run Code Online (Sandbox Code Playgroud)
然后渲染的href将是'foo/bar/donkey.gif'
.
由于复杂的原因我不想进入这里,使用"〜/ donkey.gif"不是一个选项.此外,我不能用于ResolveUrl(string url)
生成绝对网址.
由于以下行为,我花了半天时间追踪错误: -
想象一下,在Http请求或响应的cookie集合中没有名为"foo"的cookie.以下代码返回null
A) HttpContext.Current.Request.Cookies["foo"]
Run Code Online (Sandbox Code Playgroud)
以下代码创建一个名为"foo"的新cookie(带有path ="/"和空值),将其添加到响应的cookie集合中并返回
B) HttpContext.Current.Response.Cookies["foo"]
Run Code Online (Sandbox Code Playgroud)
所以(B)的副作用是在客户端的浏览器上覆盖任何预先存在的名为"foo"的cookie.
这不是一个错误.有人故意对此进行编码.这是Get方法的反汇编(Item [string name] indexer委托给这个方法.
public HttpCookie Get(String name) {
HttpCookie cookie = (HttpCookie)BaseGet(name);
if (cookie == null && _response != null) {
// response cookies are created on demand
cookie = new HttpCookie(name);
AddCookie(cookie, true);
_response.OnCookieAdd(cookie);
}
return cookie;
}
Run Code Online (Sandbox Code Playgroud)
显然,MSDN文档没有提到这种行为(尽管有些用户在描述此行为的文档底部添加了注释).
我的问题是,有人可以向我解释为什么HttpCookieCollection
班级有这种行为的理性.
我使用.Net XslCompiledTranform来运行一些简单的XSLT(参见下面的简化示例).
示例XSLT旨在简单地显示传递给模板的参数的值.输出是我所期望的(即
<result xmlns:p1="http://www.doesnotexist.com">
<valueOfParamA>valueA</valueOfParamA>
</result>
Run Code Online (Sandbox Code Playgroud)
当我使用Saxon 9.0时,但是当我在.net中使用XslCompiledTransform(XslTransform)时,我得到了
<result xmlns:p1="http://www.doesnotexist.com">
<valueOfParamA></valueOfParamA>
</result>
Run Code Online (Sandbox Code Playgroud)
问题是当我使用.Net类时,paramA的参数值没有传递到模板中.我完全难以理解为什么.当我在Visual Studio中单步调试时,调试器表示将使用paramA ='valueA'调用模板,但是当执行切换到模板时,paramA的值为空.
任何人都可以解释为什么会这样吗?这是MS实现中的错误还是(更有可能)我在做XSLT禁止的事情?
任何帮助非常感谢.
这是我正在使用的XSLT
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:extfn="http://exslt.org/common" exclude-result-prefixes="extfn" xmlns:p1="http://www.doesnotexist.com">
<!--
Replace msxml with
xmlns:extfn="http://exslt.org/common"
xmlns:extfn="urn:schemas-microsoft-com:xslt"
-->
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<xsl:variable name="resultTreeFragment">
<p1:foo>
</p1:foo>
</xsl:variable>
<xsl:variable name="nodeset" select="extfn:node-set($resultTreeFragment)"/>
<result>
<xsl:apply-templates select="$nodeset" mode="AParticularMode">
<xsl:with-param name="paramA" select="'valueA'"/>
</xsl:apply-templates>
</result>
</xsl:template>
<xsl:template match="p1:foo" mode="AParticularMode">
<xsl:param name="paramA"/>
<valueOfParamA>
<xsl:value-of select="$paramA"/>
</valueOfParamA>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud) asp.net ×4
.net ×1
c# ×1
hyperlink ×1
iis-7 ×1
merge ×1
performance ×1
svn ×1
type-safety ×1
web-config ×1
xslt ×1