Glimpse在本地工作,而不是在远程服务器上
本文关键字:服务器 工作 Glimpse | 更新日期: 2023-09-27 17:59:12
在阅读了所有指南、SO页面和故障排除页面后,我发现我终于无计可施了。
我让Glimpse在本地开发服务器上运行良好,但当我将ASP.net(MVC5)应用程序部署到远程服务器时,它根本不起作用。/glimpse.axd
给出了一个404,其中LocalPolicy
和ControlCookiePolicy
都设置为忽略,并且具有在所有情况下都返回On的自定义安全策略。我的理解是,在禁用ControlCookiePolicy
的情况下,我不需要转到/glimpse.axd
来启用它,但我在远程服务器上也看不到"一瞥"图标。
即使我转到远程服务器并将localhost浏览到/glimpse.axd
,我仍然会得到404。
我的web.config如下所示:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="glimpse" type="Glimpse.Core.Configuration.Section, Glimpse.Core" />
</configSections>
<system.web>
<compilation debug="false" />
<httpRuntime targetFramework="4.5.1" relaxedUrlToFileSystemMapping="true" />
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="FormsAuthentication" />
</modules>
<urlCompression doDynamicCompression="true" dynamicCompressionBeforeCache="false" />
</system.webServer>
<glimpse defaultRuntimePolicy="On" endpointBaseUri="~/Glimpse.axd">
<logging level="Trace" />
<runtimePolicies>
<ignoredTypes>
<add type="Glimpse.AspNet.Policy.LocalPolicy, Glimpse.AspNet" />
<add type="Glimpse.Core.Policy.ControlCookiePolicy, Glimpse.Core" />
</ignoredTypes>
</runtimePolicies>
</glimpse>
</configuration>
这是远程服务器上的版本(转换后)。我对它进行了一些修剪,删除了appSettings之类的部分。
我的GlimpseSecurityPolicy.cs如下所示:
// Uncomment this class to provide custom runtime policy for Glimpse
using Glimpse.AspNet.Extensions;
using Glimpse.Core.Extensibility;
namespace RationalVote
{
public class GlimpseSecurityPolicy:IRuntimePolicy
{
public RuntimePolicy Execute(IRuntimePolicyContext policyContext)
{
return RuntimePolicy.On;
}
public RuntimeEvent ExecuteOn
{
// The RuntimeEvent.ExecuteResource is only needed in case you create a security policy
// Have a look at http://blog.getglimpse.com/2013/12/09/protect-glimpse-axd-with-your-custom-runtime-policy/ for more details
get { return RuntimeEvent.EndRequest | RuntimeEvent.ExecuteResource; }
}
}
}
真正的一个做了实际的检查,但我对上面的政策也有同样的问题。
我似乎在远程服务器上的任何地方都找不到任何跟踪输出,它在我的本地机器上记录得很好。
我正在使用VisualStudio发布到web功能进行部署,并且我已经验证了Glimpse.Core.dll
在bin文件夹中。
我在事件日志中看不到任何相关内容。
我还将<add namespace="Glimpse.Mvc.Html" />
添加到了views文件夹中web.config的namespaces块中。
我尝试将@Html.GlimpseClient()
放在</body>
上方的_Layout.cshtml
文件中,但这不会产生任何效果。
有人有什么想法吗?
如果snug.axd返回404,则意味着glimpse资源处理程序未注册。
如果您上面显示的web.config内容没有修剪到太多,那么Glimpse不会做太多工作是正常的,因为Glimpse HttpModule
和Glimpse HttpHandler
没有像这个一样在system.web
和/或system.webserver
部分中注册
<system.web>
<httpModules>
<add name="Glimpse" type="Glimpse.AspNet.HttpModule, Glimpse.AspNet"/>
</httpModules>
<httpHandlers>
<add path="glimpse.axd" verb="GET" type="Glimpse.AspNet.HttpHandler, Glimpse.AspNet"/>
</httpHandlers>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<add name="Glimpse" type="Glimpse.AspNet.HttpModule, Glimpse.AspNet" preCondition="integratedMode"/>
</modules>
<handlers>
<add name="Glimpse" path="glimpse.axd" verb="GET" type="Glimpse.AspNet.HttpHandler, Glimpse.AspNet" preCondition="integratedMode" />
</handlers>
</system.webServer>
也许你的转换从本地web.config中删除了很多?