小编Mar*_*rth的帖子

从ASP.NET禁用所有浏览器的浏览器缓存

我正在明确提到禁用浏览器缓存页面所需的ASP.NET代码.有很多方法可以影响HTTP标头和元标记,我得到的印象是需要不同的设置才能使不同的浏览器正常运行.获得一个评论的参考位以表明哪些适用于所有浏览器以及哪些适用于特定浏览器(包括版本)是非常好的.

关于这个问题有大量的信息,但我还没有找到一个很好的参考资料来描述每种方法的好处,以及某种技术是否已被更高级别的API取代.

我对ASP.NET 3.5 SP1特别感兴趣,但同样可以获得早期版本的答案.

此博客文章Firefox和IE缓存之间的两个重要差异描述了一些HTTP协议行为差异.

以下示例代码说明了我感兴趣的内容

public abstract class NoCacheBasePage : System.Web.UI.Page
{
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);

        DisableClientCaching();
    }

    private void DisableClientCaching()
    {
        // Do any of these result in META tags e.g. <META HTTP-EQUIV="Expire" CONTENT="-1">
        // HTTP Headers or both?

        // Does this only work for IE?
        Response.Cache.SetCacheability(HttpCacheability.NoCache);

        // Is this required for FireFox? Would be good to do this without magic strings.
        // Won't it overwrite the previous setting
        Response.Headers.Add("Cache-Control", "no-cache, no-store"); …
Run Code Online (Sandbox Code Playgroud)

browser asp.net caching http

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

使用ELMAH的WCF服务的异常日志记录

我们使用优秀的ELMAH来处理ASP.NET 3.5 Web应用程序中的未处理异常.除了使用REST功能使用的WCF服务之外,这对于所有站点都非常有效.当应用程序代码未处理的操作方法中发生异常时,WCF会以各种方式处理它,具体取决于服务协定和配置设置.这意味着该异常不会最终触发ELMAH使用的ASP.NET HttpApplication.Error事件.我知道要处理的两个解决方案是:

  • 在try {} catch中包含所有方法调用(Exception ex){Elmah.ErrorSignal.FromCurrentContext().Raise(ex); 扔; 在catch块中显式调用Elmah.
  • 使用IErrorHandler,如Will Hughes的博客文章中所述,使WCF和ELMAH一起发挥出色,将对ELMAH的调用分解为单独的ErrorHandler.

第一个选项非常简单,但并不完全是DRY.第二个选项仅要求您在实现属性和ErrorHandler后使用自定义属性装饰每个服务.我是根据Will的工作完成的,但我想在发布代码之前验证这是正确的方法.

有没有更好的方法让我错过了?

在MSDN documenation为IErrorHandler说,的HandleError方法是做记录的地方,但ELMAH访问HttpContext.Current.ApplicationInstance,即使HttpContext.Current可用,在此方法中为null.在ProvideFault方法中调用Elmah是一种解决方法,因为ApplicationInstance已设置,但这与API文档中描述的意图不匹配.我在这里错过了什么吗?文档确实声明您不应该依赖于在操作线程上调用的HandleError方法,这可能是ApplicationInstance在此范围内为空的原因.

asp.net wcf logging elmah exception

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

使用SqlMembershipProvider禁用帐户锁定

如何禁用SqlMembershipProvider的帐户锁定功能?

MaxInvalidPasswordAttempts属性的MSDN文档未指定如何禁用它.如果我找不到正确的方法,我会将maxInvalidPasswordAttempts属性设置为int的最大值,这可以有效地实现相同的结果.

我很清楚,禁用帐户锁定不是最好的主意,但我需要在短期内实现这一目标.

membership asp.net asp.net-membership sqlmembershipprovider

28
推荐指数
1
解决办法
9403
查看次数

在没有管理员权限的情

我已经使用VS2010 SP1升级到iis express 7.5.在发行说明中,它指定express能够在没有管理员权限的情况下运行.当我尝试从命令行(powershell cmd行)运行时,我收到相同的"访问被拒绝"错误(如下所示)我正在运行IIS Express 7.

据我所知,仍然需要管理员权限.

任何人都能够没有管理员权限运行?

详细的错误消息是:

Failed to call HttpAddUrl with http://MACHINE-NAME:80/
Failed to register URL "http://MACHINE-NAME:80/" for site "WebSiteName" application "/". Error description: Access is denied. (0x80070005)
Run Code Online (Sandbox Code Playgroud)

permissions iis-express

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

如何在TFS上撤消"获取最新版本"

我正在使用TFS与VS2008和VS2010,在TFS集合中我有几个项目.

我已经将TFS根映射到本地驱动器以保留TFS文件夹结构,并且我已经完成了几个子文件夹的Get Latests.

我还下载了一个不需要的文件夹,所以我删除了本地文件夹内容,但现在在TFS中,我看到该文件夹​​为黑色,"最新"是.如何告诉TFS我已经在本地删除了我之前下载的文件夹?

tfs undo visual-studio-2010 visual-studio

22
推荐指数
2
解决办法
9408
查看次数

Visual Studio 2012/2013中的用户签入历史记录

在Visual Studio 2010中,我能够从中查看特定用户的签入历史记录 Team Explorer -> Team Project -> Team Members -> Right-click on a user name -> Show Check-in History.

在激烈的Team Explorer UI重新设计之后,我在Visual Studio 2012/2013中找不到这样的选项.

team-explorer visual-studio-2012 visual-studio-2013

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

在SQL Server Management Studio中丢失了IntelliSense

我正在运行SQL-2008 R2 Server.

通常当我编写查询时,我会得到一个完整的IntelliSense,显示我的数据库中的所有对象.

但是现在当我执行任务时,它没有显示任何智能感知.相反,当我写对象名称时,它表明对象无效!但是,运行Query会得到正确的结果.

我关闭了管理工作室并重新启动它.现在一切正常.

我想知道实际上是错的.有任何想法吗?

sql ssms sql-server-2008

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

从WebMatrix 2启动Visual Studio会打开错误的版本

我正在使用Microsoft WebMatrix 2来处理简单的ASP.NET WebPages站点.当您在" 文件"视图中时,有一个Visual Studio启动按钮,该按钮应该在Visual Studio 2012中打开站点解决方案.在我的机器上,我也安装了Visual Studio 2010,这是我点击按钮时打开的版本.

在此输入图像描述

如何确保Visual Studio 2012已打开?

我正在使用Windows 8,但我很确定这也适用于Windows 7和XP.我怀疑我可能在2010年之前安装了2012,这可能解释了我的机器是如何进入这种状态但我不记得的.

registry visual-studio webmatrix visual-studio-2012 webmatrix-2

11
推荐指数
1
解决办法
1692
查看次数

Silverlight Out-of-Browser应用程序不会使用MainWindow.Close方法关闭

我有一个不受信任的Silverlight 5.1.10411.0 Out-of-Browser应用程序,我试图使用App.Current.MainWindow.Close方法关闭应用程序.根据文档,如果满足以下条件之一,我只能使用此机制:

  • 它是一个值得信赖的应用程序(对我的应用程序不适用
  • 在Application.Startup事件完成之前(对于我的应用程序不是这样)
  • 响应用户启动的操作,例如,在按钮Click事件处理程序中(这是我想要工作的)

在我试图让它工作的过程中,我保持了非常简单的操作,并且直接在按钮单击事件处理程序后面的代码中调用方法,如下所示,但它没有任何效果.

void closeButton_Click(object sender, RoutedEventArgs e)
{
    var mainWindow = Application.Current.MainWindow;
    mainWindow.Close();
}
Run Code Online (Sandbox Code Playgroud)

当我附加调试器并设置"抛出异常时中断"时,我可以看到异常

SecurityException:除非应用程序具有提升的权限,或者通过用户启动的操作调用了代码,否则不允许访问属性或方法调用.

有什么想法为什么我的代码不被视为用户启动的操作?

我已经尝试在XAML和代码隐藏中附加事件处理程序(不是同时)

 <Button x:Name="closeButton" Content="Close" Click="closeButton_Click" />
Run Code Online (Sandbox Code Playgroud)

要么

 closeButton.Click += closeButton_Click;
Run Code Online (Sandbox Code Playgroud)

没有成功.我已经非常仔细地阅读了用户启动的事件文档,并且无法理解为什么我的代码不被视为用户启动.我已经在调试和发布模式以及没有成功附加调试器时尝试了这一点.如果我将"在浏览器外部运行时需要提升的信任"更改为true,则close调用将按预期工作.

我已经重新定义了我的应用程序要求来解决这个问题,但我真的想了解我做错了什么;-)

更新:SonOfPirate的回答表明这种方法的文档不准确,但我不相信.使用反射工具dotPeek抛出异常的方法是

private void CheckForPermissions()
{
  if (!Application.Current.HasElevatedPermissions && !XcpImports.IsUserInitiatedAction() && Application.Current.ApplicationStarted)
    throw new SecurityException(Resx.GetString("Window_AccessNotAllowed"));
}
Run Code Online (Sandbox Code Playgroud)

我觉得这是一个有点混乱读,所以我一直嘲笑的代码,写它的单元测试见下面的要点,正如你可以从结果看,我应该能够从不受信任的应用程序调用Close,只要它是用户启动. 窗口关闭安全测试结果

安全异常消息

除非应用程序具有提升的权限,或者通过用户启动的操作调用了代码,否则不允许访问属性或方法调用.

也表明它应该是可能的,所以我回到了这个问题 - 为什么这个代码不被认为是用户启动的?

silverlight silverlight-5.0

8
推荐指数
1
解决办法
858
查看次数

Kendo UI Grid列headerTemplate函数无法访问列定义

我正在尝试使用Kendo UI Gridcolumns.headerTemplate功能来自定义列标题.您可以使用此功能,如下所示,并由我创建此示例演示.通常在使用Kendo UI模板时,窗口小部件会将实体传递给模板函数,因此您可以使用各种属性来自定义要呈现的html.

调试Kendo UI网格代码我可以看到,在_headerCellText方法中,即使列对象在范围内,对模板函数的调用也会传入一个空对象而不是列.

text = kendo.template(template, settings)({});

在为每个列使用自定义列标题模板之前是否还有其他方法可以采用 - 或者更糟糕的是jQuery操作窗口小部件呈现DOM?

是否有充分理由偏离此用例框架中的通用模板模式?

// Example kendoGrid use of column.headerTemplate
var templateFunction = function(shouldBeColumn) {
    // shouldBeColumn is an empty object rather than the column object
    return "Useless object:" + kendo.stringify(shouldBeColumn);
  };

$("#grid").kendoGrid({
    dataSource: {
        data: products,
        pageSize: 20
    },
    height: 550,
    scrollable: true,
    columns: [
      { field: "ProductName", title: "Product Name" },
      { field: "UnitPrice", title: "Unit …
Run Code Online (Sandbox Code Playgroud)

javascript telerik kendo-ui kendo-grid

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