gpt4 book ai didi

c# - ASP.NET 浏览器定义文件不工作

转载 作者:太空宇宙 更新时间:2023-11-03 21:33:46 25 4
gpt4 key购买 nike

我正在尝试检测一些较旧的硬件并使用浏览器定义文件将其标记为 isMobileDevice。这是在 .NET 4.0 + 中

用户代理是 Mozilla/4.0(兼容;MSIE 6.0;Windows CE)

所以我在我的 App_Browsers 文件夹中添加了一个名为 WinCE.browser 的浏览器文件。单步执行代码,我看到它正在将其检测为 IE6to9,因此我将以下内容放在我的文件中以检测用户代理何时具有 Windows CE,它应该匹配它并将 id 设置为 WinCE 和 isMobileBrowser = true 但它不起作用。我在这里缺少什么才能让它发挥作用。

   <!--
You can find existing browser definitions at
<windir>\Microsoft.NET\Framework\<ver>\CONFIG\Browsers
-->
<browsers>
<browser id="WinCE" parentID="IE6to9">
<identification>
<userAgent match="Windows CE" />
</identification>

<capture>
</capture>

<capabilities>
<capability name="browser" value="Windows CE MSIE" />
<capability name="isMobileDevice" value="true" />
</capabilities>
</browser>
</browsers>

最佳答案

终于找到问题了。显然有一些错误,自 2008 年以来就存在

http://forums.asp.net/t/955969.aspx?Mastering+Browser+Definition+Files

错误你们中的一些人可能一直在尝试这些东西,但仍然说,“它不起作用!”好吧,问题在于 ASP.NET 中存在与编译新浏览器文件相关的错误。尽管 Microsoft 声明 App_Browsers 文件夹中的“.browser”文件是即时检测和编译的,但我发现情况并非总是如此。

根据我自己的测试,下面是我发现的一些奇怪的行为模式,它们应该在开发过程中对您有所帮助。

· 在 App_Browsers 文件夹中创建的第一个 .browser 文件被检测并编译没有问题。

· 在第一个文件上检测到更改之前,不会检测到任何其他 .browsers 文件。

因此,这意味着如果您创建其他 .browser 文件,则需要触发第一个 .browser 文件的更改。您可以通过简单地使用文本编辑器保存第一个 .browser 文件而不进行任何实际修改来完成此操作。这会更改文件的修改日期,这似乎足以让 ASP.NET 重新编译所有 .browser 文件。创建几个 .browser 文件后,我注意到如果我发现对其中一个文件的更改没有生效,那么只需修改任何其他文件的日期似乎就可以解决问题。

关于c# - ASP.NET 浏览器定义文件不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22921382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com