小编Squ*_*azz的帖子

IE11中的"SSL网络扩展器服务已关闭"错误

使用CheckPoint我正在尝试使用从工作到我的客户端站点的VPN访问,这在Windows 7和8中运行良好.但在Windows 10中,我收到错误"ssl网络扩展器服务已关闭......"

当CheckPoint尝试连接时,我在请求开始时收到错误消息.

尝试运行作为另一个浏览器模拟的Internet Explorer无效.

ssl internet-explorer checkpoint internet-explorer-11 windows-10

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

使用MiniProfiler时如何从分析中删除特定URL

有时候使用miniprofiler时,只有一些你不关心的请求.在我的情况下,我不太关心信号器,umbraco ping,以及当我想知道用户是否闲置时提出的一些请求.

为了避免miniprofiler在这些类型的请求中使用能量(并提供结果),我将以下代码添加到我的global.asax.cs文件中:

protected void Application_BeginRequest()
{
    if (
        (Request.IsLocal || Request.UserHostAddress == "37.49.143.197")
        && !(Request.RawUrl.Contains("/signalr/")
            || Request.RawUrl.Contains("/idle/verify")
            || Request.RawUrl.Contains("/idle/interaction")
            || Request.RawUrl.Contains("/umbraco/ping")
            )
        )
    {
        MiniProfiler.Start();
    }
}
Run Code Online (Sandbox Code Playgroud)

看到我仍然收到包含给定字符串的URL的结果,我稍后在应用程序生命周期中进行了此检查,试图消除我可以看到的不必要的结果.

protected void Application_ProcessRequest()
{
    if (Request.RawUrl.Contains("/signalr/")
        || Request.RawUrl.Contains("/idle/verify")
        || Request.RawUrl.Contains("/idle/interaction")
        || Request.RawUrl.Contains("/umbraco/ping")
        )
    {
        MiniProfiler.Stop(discardResults: true);
    }
}
Run Code Online (Sandbox Code Playgroud)

但即使我已经这样做了,我仍然收到了不想要的结果.有谁知道这是怎么回事,我在这里做错了什么?

笔记

应该注意的是,因为我使用Umbraco作为我的基础,我正在使用MiniProfiler 2.1.0并且我开始我的Global.asax.cs文件,如下所示:

public class MvcApplication : UmbracoApplication
{    
    protected override void OnApplicationStarted(object sender, EventArgs e)
    {
        // Setup profiler for Controllers via a Global ActionFilter
        GlobalFilters.Filters.Add(new ProfilingActionFilter()); …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-mvc umbraco mvc-mini-profiler

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

在 autofac 中可视化依赖树深度

我可能一直在寻找错误的东西,在错误的盒子里寻找。但是我似乎找不到一种好方法来可视化我的依赖树在 C# 中的深度。

我最初只是尝试连接 Autofac 的准备事件和激活事件。但我不知道这是否足够好。结果看起来有点时髦。似乎准备活动启动得太频繁了。并且似乎只有在实际创建新对象时才会激活激活事件。

我们的代码是 .NET 4.7.2 我们使用 Autofac 作为我们的容器来处理依赖项注入。

有没有人对我们如何可视化深度有好的想法?也许有一些好的代码或产品可以帮助我们?

.net c# dependency-injection autofac

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

为特定的div设置字符集

是否可以为特定的div分配一个字符集?这样一来,您就可以在一个页面上拥有多个字符集。

我目前正在通过JS将文本片段导入到我的网站中,其中一些文本需要UTF-8字符集。为了确保我的文字显示在所包含的每个页面上(有时是外部站点),我强制将metatag插入所有站点。

是否可以将此字符集仅应用于特定的div,span或类似的东西?

html javascript character-encoding

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

如何在受登录保护的Intranet中打开IE打开的Office文档中进行编辑?

问题

我正在Intranet上工作,并且使用IE可以打开本地Office安装的文档存在一些问题。

我使用以下锚标记为用户提供文件:

<a target="_blank" download="{{fileName}}" href="{{filePath}}">
Run Code Online (Sandbox Code Playgroud)

当用户单击此链接时,IE会为用户提供打开或保存它的决定。如果用户选择打开文件,然后决定他/她想要编辑文件,则他们在Office应用程序顶部单击“启用编辑”。这给用户一个错误,因为Office应用程序无法连接到站点并获取用户要编辑的文件。

Office应用程序名称无法连接到(我的文件)...

我要做的是让用户编辑他们在网上找到的文档的副本。然后他们可以保存副本,然后重新上传。

我认为问题之一是文件受登录保护。也许Intranet正在SSL上运行。

研究

在研究问题的解决方案时,我从Microsoft找到了此支持页面,页面讨论了我正在经历的事情。他们在错误消息三中写道:

Office应用程序名称无法打开文件。

就我而言,我得到的信息是:

Office应用程序名称无法连接到(我的文件)...

几乎相同,Microsoft写道,一个问题可能是:

当Internet Explorer通过SSL与安全网站通信时,Internet Explorer会强制执行任何无缓存请求。如果存在一个或多个标题,则Internet Explorer不会缓存该文件。因此,Office无法打开该文件。

这让我开始思考,然后我开始研究此问题,找到StackOverflow页面,例如“如何为每个文件夹配置静态内容缓存...”“利用IIS中的浏览器缓存”。我还检查了《 IIS.net配置参考》,以查看此处是否有任何可以帮助我解决问题的内容。

我认为主要的问题是,打开文件时,该文件未保存在本地,因此Office应用程序无法对其进行编辑。到目前为止,我认为解决此问题的方法是删除无缓存头,而对文件使用某种短缓存,以便浏览器强制下载该文件。

我尝试过的

缓存控制

我尝试了链接的前两篇SO文章中的技术,尝试在web.config中设置静态文件的缓存,但是强制缓存没有任何改变(当我询问时,我使用此技术来确保缓存控件正确无误文件)。Office应用程序仍尝试从其无权访问的网页打开文件。

内容配置

我尝试的另一件事是强制Internet Explorer下载该文件。完全删除该选项以将其打开。Microsoft也有关于它的支持页面。但这似乎没有用。在Global.asax中,我尝试了以下代码(只是看是否可以使Word文件正常工作):

<script runat="server">
    void Application_PreSendRequestHeaders(Object sender, EventArgs e) {
        Response.Headers.Set("Content-Type", "application/ms-word");
        Response.Headers.Set("Content-Disposition", "attachment; filename=fname.ext");
    }
</script>
Run Code Online (Sandbox Code Playgroud)

但这只会使Internet Explorer尝试下载我尝试访问的所有页面。

对文件禁用身份验证控制

我们总是检查用户是否确实有权访问所请求的文件。我们不希望人们窥探其他文件。禁用此检查将导致所有Office应用程序都可以在用户要编辑文件时打开文件。但这是一个糟糕的解决方案,并且带来了很多安全问题。

问题

所以我的问题是,“如何启用在IE中从受登录保护的Intranet打开的Office文档中进行编辑?” 如果与缓存有关,那么我该如何解决?当用户选择“打开”文件时,是否可以通过某种方式告诉IE保存本地副本,以及如何告诉Office应用程序查找文件的本地缓存版本,而不是尝试从中下载文件?服务器?

更新资料

我将问题缩小为Office应用程序的身份验证。当我单击Office应用程序中的“启用编辑”按钮时,该应用程序正在尝试下载文件,以便它可以编辑文件。然后,该请求被服务器拒绝(服务404),因为Office应用程序未登录,并且没有任何类型的cookie来告知服务器实际上确实可以访问该文件。这导致用户收到一条消息,通知用户无法打开请求的文件。

.net c# iis internet-explorer ms-office

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

Internet Explorer 在查询字符串中遇到特殊字符问题

这不是一个问题

这里有很多关于 IE 在处理查询字符串中的特殊字符时遇到问题的问题。在所有情况下都是一样的:Chrome、Firefox、Safari(每个人)都正确处理了 UTF-8 编码的 URL,几乎所有这些甚至都处理了 IRI 未编码为 URL 的情况。但 IE 坚持让开发者过得艰难。

因为我自己遇到了这个问题,并且已经解决了很多问题。对我来说,IE 似乎出于某种原因坚持将 UTF-8 编码的 URL 解码为 ISO-8859-1,然后再将其发送到服务器。

我的情况

我是丹麦的居民,因此我必须使用丹麦字母 æøå。在很多情况下,我想将视图中的参数发送到某些 C# 方法中。特殊字符经常出现的地方的两个例子:

  1. 搜索
  2. 下载文件的文件名规范

假设丹麦人想要搜索丹麦语单词“æblegrød”(一种特殊的苹果派)。在 Chrome 和 Firefox 中,如果我只是用 IRI 提供给浏览器:

http://example.com/Search/QuickSearch?searchQuery=æblegrød
Run Code Online (Sandbox Code Playgroud)

发送到服务器的查询如下所示:

http://example.com/Search/QuickSearch?searchQuery=%C3%A6blegr%C3%B8d
Run Code Online (Sandbox Code Playgroud)

然而,在 Internet Explorer 中,它看起来像这样:

http://example.com/Search/QuickSearch?searchQuery=æblegrød
Run Code Online (Sandbox Code Playgroud)

现在很容易看出问题所在。Firefox 和 Chrome 是 URL 编码的 URL

... 每个不是 ASCII 字母或数字的字节到 %HH,其中 HH 是字节的十六进制值

http://www.w3.org/International/O-URL-code.html

Internet Exlorer 对字符串进行直接的 UTF-8 编码,结果是“Ã|blegrød”。这也与您采用 UTF-8 字符串并将其解码为 ISO-8859-1 的最终结果相同,这是巧合吗?

我尝试了一些东西

由于 Internet Explorer 可以选择“以 UTF-8 格式发送 URL 路径”,因此我尝试禁用它。什么都不改变。

由于 IE 必须处理“searchQuery=æblegrød”时出错,我尝试在将 …

.net url encoding internet-explorer utf-8

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

Autofac多次注册组件

在上一个关于如何可视化依赖关系图的问题中,我获得了现在用来可视化我的依赖关系图的代码的基础,因为它是由 Autofac 解析的。

\n\n

运行代码,我得到一棵树,生成如下代码。

\n\n
Usd.EA.Bogfoering.WebApi.Controllers.BogfoerController (3851,7 ms. / 0,0 ms.) Depth: 0\n   Usd.EA.Bogfoering.WebApi.Controllers.BogfoerController (3851,7 ms. / 0,4 ms.) Depth: 1\n      Usd.Utilities.WebApi.Controllers.UnikOwinContext (0,1 ms. / 0,0 ms.) Depth: 2\n         Usd.Utilities.WebApi.Controllers.UnikOwinContext (0,1 ms. / 0,0 ms.) Depth: 3\n
Run Code Online (Sandbox Code Playgroud)\n\n

一开始我认为代码有问题,并且由于某种原因导致组件多次得到解决。正如 Steven 指出的,当组件注册为InstancePerDependency. 但由于我的几个组件被注册为InstancePerLifetimeSingleInstance项,因此这些依赖项不应在图中解析两次。

\n\n

史蒂文确实提到“依赖关系的第一个解析InstancePerDependency似乎比下一个解析有更多的依赖关系,因为该图仅显示解析。也许这就是正在发生的事情。 ”但是当我看到InstancePerLifetime组件被注册多个时在整个图表中,有好几次,我感觉这里还发生了其他事情。

\n\n

这里可能发生了什么?

\n\n

如何注册依赖项

\n\n

以下代码是我们用来注册程序集的代码:

\n\n
public static void RegisterAssemblies(this ContainerBuilder containerBuilder, IList<Assembly> assemblies, params Type[] typesToExclude)\n{\n  if (containerBuilder != …
Run Code Online (Sandbox Code Playgroud)

.net c# dependency-injection ioc-container autofac

4
推荐指数
1
解决办法
1623
查看次数

如何在C#中将枚举值检索为字符串

我有以下枚举:

public enum DocumentState
{
    Default = 0,
    Draft = 1,
    Archived = 2,
    Deleted = 3
}
Run Code Online (Sandbox Code Playgroud)

我的解决方案中的大多数地方都将它用作普通的枚举.我在int中使用的一些地方像这样:

(int)DocumentState.Default)
Run Code Online (Sandbox Code Playgroud)

但是,有些地方,例如当我使用Examine(只接受字符串,而不是整数作为输入)时,我需要传递en int int值,就像它是一个字符串一样.这可以通过以下方式完成:

((int)DocumentState.Default).ToString()
Run Code Online (Sandbox Code Playgroud)

我现在的问题是; 是否真的没有其他方法可以将字符串值作为字符串检索?

我知道我可能会滥用Enum,但有时这是给定情况下的最佳方法.

c# enums examine

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

“降级”MS dll 在升级时消失 - Windows Installer

我们开发了一个通过 Windows Installer 分发的应用程序,该应用程序是使用 WiX 创建的,我们的客户可以从任何旧版本升级到最新版本。

然而,我们的最新版本删除了 2 个 dll,这只能通过重新安装来纠正。

有关 NuGet 包的详细信息

Microsoft.IdentityModel.Protocol.Extensions已从Nuget 版本 1.0.2.206221351和文件版本 1.0.20622.1351 升级到Nuget 版本 1.0.4.403061554和文件版本 1.0.4.54。

System.IdentityModel.Tokens.Jwt的文件版本控制也发生了类似的变化,从Nuget 版本 4.0.2.206221351Nuget 版本 4.0.4.403061554

因此,通过更改文件版本的计算方式,MS 有效地将版本更改为之前的降级版本(从构建版本的 20622 更改为 4)。

为什么升级时 dll 被删除

有人称其为错误,有人称其为功能,但发生的情况是,MSI 有一个步骤,它会记录所有需要升级的文件,然后卸载当前版本,然后仅安装需要升级的文件。版本没有变化或升级 - 任何降级都被排除在外。

问题:我们如何解决这个问题?

我们正在将该产品运送给许多不同的客户,他们的技术技能也各不相同,因此升级效果更好,否则我们将面临大量支持问题。有什么我可以改变的,而不需要实际禁用诸如 MSI 在出现错误时回滚的功能之类的功能,我认为这是对其他解决相同问题的人的权衡。

windows-installer wix nuget

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