小编Lee*_*som的帖子

删除OWIN自托管应用程序中的服务器HTTP标头

我有一个应用程序自托管OWIN应用程序,我想从所有响应中删除Server标头("Microsoft-HTTPAPI/2.0").在Google上搜索时,它看起来非常简单,例如MSDN上的这篇博文显示了一个看起来非常简单的解决方案.我按照说明操作:

  • HKLM\SYSTEM\CurrentControlSet\Services\HTTP\Parameters中添加注册表项DisableServerHeader 并将其设置为DWORD 1
  • 重新启动服务器以确保HTTP服务获取更改

结果非常令人失望,没有任何改变,我仍然得到Server头.令我感到困惑的是,所有解决方案都完全相同,对他们来说似乎有效.还有什么需要做的才能从自托管的OWIN应用程序中删除Server标头吗?

更新 我尝试自己添加一个服务器头,它实际上工作,但它仍然添加了Microsoft-HTTPAPI/2.0.

将此代码添加为DelegatingHandler:

HttpResponseMessage response = await base.SendAsync(request, cancellationToken);
response.Headers.Server.Add(new ProductInfoHeaderValue("Foo", "1.0"));
Run Code Online (Sandbox Code Playgroud)

生成此服务器标头:服务器:Foo/1.0 Microsoft-HTTPAPI/2.0

.net c# self-hosting http-headers owin

5
推荐指数
1
解决办法
652
查看次数

如何检查枚举变量是否分配了单个枚举值?

我想限制用户使用任何enumvalue.如果用户尝试分配两个以上的值,我必须抛出一个错误.

public enum Fruits
{
    Apple,
    Orange,
    Grapes
}

public Fruits Fruits
{
    get
    {
        return m_fruits;
    }
    set
    {
        m_fruits=value;
    }
}

Fruits = Fruits.Apple & Fruits.Grapes; //I need to avoid such type of assignment
Run Code Online (Sandbox Code Playgroud)

任何人都可以说如何检查这种类型的验证.

谢谢,Lokesh

c#

4
推荐指数
2
解决办法
5570
查看次数

编译器错误:无法从"List <string>"转换为"IList <object>"

我如何更改以下代码以使其编译?(除铸造/更改stringsList<object>).

Action<IList<object>> DoSomething = (list) => { /*list is never modified*/ };
var strings = new List<string>() { "one", "two" };
DoSomething(strings);
Run Code Online (Sandbox Code Playgroud)

.net covariance c#-5.0

3
推荐指数
1
解决办法
888
查看次数

ASP.NET 4.8 功能在 IIS 8.5 (Windows Server 2012 R2) 中不可用

已安装 Windows Server 2012 R2、IIS 8.5、.NET 4.8(通过注册表验证,请参见屏幕截图)。

在我的 Windows 10 计算机上,我看到从“打开或关闭 Windows 功能”对话框中选择 ASP.NET 4.8 功能的选项。但是,在 Windows 2012 R2 上的“添加服务器角色”向导中,我只看到列出了 ASP.NET 4.5 选项。请参阅屏幕截图进行比较。

我的问题:Windows Server 2012 R2 仅显示 ASP.NET 4.5 选项是否正常?即使安装了更高版本的.NET Framework(例如4.8)?

.NET Framework 4.8 已安装

并排功能比较

asp.net iis windows-server-2012-r2 .net-4.8

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