标签: httphandler

报表查看器Web控件HTTP处理程序尚未在应用程序的web.config文件中注册

    The Report Viewer Web Control HTTP Handler has not been registered in the application's 
web.config file.  Add <add verb="*" path="Reserved.ReportViewerWebControl.axd" type = 
"Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, 
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> to the system.web/httpHandlers section of the web.config file
Run Code Online (Sandbox Code Playgroud)

这个错误即将到来.我已经在http处理程序中提到了这一行但仍然出现此错误

<add path="Reserved.ReportViewerWebControl.axd" verb="*"   type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0,    Culture=neutral, PublicKeyToken=0000000000000000" validate="false" />
Run Code Online (Sandbox Code Playgroud)

我的html页面标记如下

<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
    Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:Button ID="btnsubmit" runat="server" OnClick="GenerateReportButton_Click" />
    <rsweb:ReportViewer ID="ReportViewer1" runat="server">
    </rsweb:ReportViewer>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)

Web配置程序集部分如下:

<assemblies>
    <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Web.Extensions, …
Run Code Online (Sandbox Code Playgroud)

asp.net httphandler rdlc visual-studio-2008

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

在ASP.NET/IIS的URL中使用冒号(:)

我正在ASP.NET MVC中实现一个自定义控制器,并且真的希望能够在url中使用冒号,这样我就可以识别类/列名称及其值,如下所示:

http://example.com/user:chaiguy

...但显然ASP.NET或IIS不允许在网址中使用冒号.我做了一些挖掘,显然它被认为是一个安全问题,但是,我正在使用MVC并且手动处理所有 url路径(只是将它们视为字符串),而不是将它们与文件系统相关联,所以我很确定这个不适用.

我也听过一些关于实现自定义Http处理程序的讨论.

任何想法或想法将不胜感激.


呃....为什么?说真的,为什么打破标准? - 兰道夫

...

那么,我建议您调查构建Web服务.WCF是一个不错的技术,它在IIS中运行良好.

我碰巧喜欢网址,而WCF对我来说太复杂了.我希望它与url兼容,如REST,但不仅能够导航层次结构,还能做好布局的事情.我用/ users/chaiguy的问题是它解释了没有的层次结构:在我的系统中"user"是一个类,它不是一个文件夹.user:chaiguy表示具有值为"chaiguy"的用户类的实例,并且该单个实体具有子实体的潜力.例如:

/user:chaiguy/name

...我想显示该实体的名称.如果我使用您的方法执行此操作,它将如下所示:

/users/chaiguy/name

问题是你怎么知道什么是班级,有什么价值?它可以解释为

/users/chaiguy:name

在我的系统中,这没有意义.看看我的目标是什么?为了给出稍微复杂的示例,假设我们想要从多个实例中选择用户实体的子代.因此用户可能有多个电子邮件地址.要选择一个,我们可能会使用:

/user:chaiguy/email:me@here.com/

所以它实际上是递归的.它不是一个文件路径,它更像是一个XPath(或者类似于基于我所知甚少的jQuery).也就是说,它更像是动态评估的查询选择而不是硬连线文件路径.它在服务器上进行评估.

别搞错了,我不是在这里建立一个典型的网站甚至是网络服务.

asp.net iis url httphandler colon

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

诊断IIS 7和ASP.NET MVC上的404错误

我有一个用Cassini开发和测试的mvc应用程序.在GoDaddy上部署到我的网站,默认页面就可以了.点击登录,我得到404.

我在IIS 7下运行,所以这是出乎意料的.我的路线很简单:

        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default",                                              
            "{controller}/{action}/{id}",                           
            new { controller = "Public", action = "Index", id = "" } 
        );
        routes.MapRoute(
            "Report1",
            "Report/{action}/{start}/{end}",
            new { controller = "Report", action = "Index" }
        );
        routes.MapRoute(
            "Report2",
            "Report/{action}/{start}/{end}/{idList}",
            new { controller = "Report", action = "Index" }
        );
Run Code Online (Sandbox Code Playgroud)

知道可能会发生什么或我如何解决这个问题?

asp.net iis asp.net-mvc iis-7 httphandler

19
推荐指数
3
解决办法
5万
查看次数

IIS7,web.config只允许在目录/上传网站中使用静态文件处理程序

如果我认为可能,我如何修改我的web.config以使子目录静态 - 内部文件只会作为静态文件处理,即使它的名称是"aspx"或其他什么?谢谢.

security iis-7 web-config httphandler

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

比HttpHandlers更快的东西?

在ASP.NET网站上执行方法的最快方法是什么?

场景非常简单:我有一个方法,应该在网页被击中时执行.页面上没有其他任何事情发生,唯一呈现的输出是"完成"消息.我希望处理尽可能快.

每一次点击都是唯一的,因此缓存不是一种选择.

我的计划是使用HttpHandler并在web.config(mypage.ashx)中配置它,而不是常规的.aspx页面.这应该会显着减少开销.

所以我的问题是:有没有比使用HttpHandlers更快的方法来实现这一目标?

asp.net performance httphandler

18
推荐指数
1
解决办法
3714
查看次数

你如何调试ASP.net HTTPHandler

我在visual studio中的HttpHandler中设置了一个断点.HttpHandler是我试图通过在VS开发Web服务器中运行我的应用程序来调试的.ashx文件.我的断点没有被击中.

我该如何逐步完成?

编辑:我的断点没有被击中

.net asp.net debugging httphandler visual-studio

18
推荐指数
3
解决办法
3万
查看次数

VS2010开发Web服务器不使用集成模式HTTP处理程序/模块

我正在使用Visual Studio 2010开发一个针对.NET Framework 4.0的ASP.NET MVC 2网站.

我的web.config包含以下代码:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
        <add name="XhtmlModule" type="DomenicDenicola.Website.XhtmlModule" />
    </modules>
    <handlers>
        <add name="DotLess" type="dotless.Core.LessCssHttpHandler,dotless.Core" path="*.less" verb="*" />
    </handlers>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

当我Build > Publish用来将网站放在我的本地IIS7实例上时,它的效果很好.

但是,当我使用时Debug > Start Debugging,HTTP处理程序和模块都不会在任何请求上执行.

奇怪的是,当我把处理器和模块<add />标签放回<system.web /><httpHandlers /><httpModules />,他们的工作.这似乎意味着开发Web服务器以经典模式运行.

我该如何解决?

web-config httphandler httpmodule visual-studio

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

禁用ASP.NET HttpHandler响应缓存

背景

我正在比较在IIS 7下运行的NancyFx和ServiceStack.NET的性能(在Windows 7主机上进行测试).两者都非常快 - 在本地测试每个框架进程超过10,000 req/sec,ServiceStack的速度提高了约20%.

我遇到的问题是ASP.NET似乎正在缓存来自HttpHandler的每个唯一URI请求的响应,很快导致大量内存压力(3 GB以上)和垃圾收集器过度工作(大约25%的时间消耗GC).到目前为止,我一直无法禁用对象的缓存和构建,并且正在寻找有关如何禁用此行为的建议.

细节

请求循环基本如下:

for i = 1..100000:
    string uri = http://localhost/users/{i}
    Http.Get(uri)
Run Code Online (Sandbox Code Playgroud)

响应是一个简单的JSON对象,格式为{UserID:n}.

我已经破解了打开的WinDBG,并且每个请求都有:

  • System.Web.FileChangeEventHandler
  • System.Web.Configuration.MapPathCacheInfos
  • System.Web.CachedPathDatas
  • System.Web.Caching.CacheDependencys
  • System.Web.Caching.CacheEntrys

显然,这些缓存项目让我相信它是一个缓存膨胀问题(我很想摆脱150,000个无法使用的对象!).

到目前为止我尝试过的

  • 在IIS的"HTTP Resonse Headers"中,将"Expire Web content"设置为"Immediate".
  • 在web.config中

    <system.web>
     <caching>
        <outputCache enableOutputCache="false" enableFragmentCache="false"/>
      </caching>
    </system.web>
    
    Run Code Online (Sandbox Code Playgroud)
  • 同样在web.config中(以及策略的许多变体,包括无).

    <caching enabled="false" enableKernelCache="false">
      <profiles>
        <add policy="DontCache" kernelCachePolicy="DontCache" extension="*/>
      </profiles>
    </caching>
    
    Run Code Online (Sandbox Code Playgroud)
  • 查看框架的源代码,看看是否可能存在使用ASP.NET缓存的任何"功能".虽然有缓存帮助程序,但它们对框架本身是私有的,并且似乎不利用ASP.NET缓存.

更新#1

通过反射器挖掘我发现将值设置UrlMetadataSlidingExpiration为零消除了过多内存使用的大部分,代价是将吞吐量减少50%(FileAuthorizationModule类缓存FileSecurityDescriptors,生成时必须有些昂贵,UrlMetadataSlidingExpiration是非零).

这是通过更新web.config并将以下内容放入:

<hostingEnvironment urlMetadataSlidingExpiration="00:00:00"/>
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我将尝试完全禁用FileAuthorizationModule运行,看看是否有帮助.但是,ASP.NET仍然会生成2*N MapPathCacheInfoCacheEntry对象,因此内存仍在消耗,速度要慢得多.

更新#2

另一半问题与此处描述的问题相同:阻止许多不同的MVC URL填充ASP.NET缓存.设置

<cache percentagePhysicalMemoryUsedLimit="1" …

asp.net caching httphandler servicestack nancy

18
推荐指数
1
解决办法
4115
查看次数

ASP.Net MVC中的HTTP模块和HTTP处理程序?

我在面试中被问到如何实施HTTP moduleHTTP handler进行的问题ASP.Net MVC.我知道它们在ASP.Net中用于在调用aspx页面之前编写预处理逻辑.但是在ASP.Net MVC中我们有过滤器,所以我告诉他们我们使用过滤器.我给出了正确的答案吗?

asp.net asp.net-mvc httphandler httpmodule

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

ASP.NET MVC Route:绕过路径的静态文件处理程序

我一直在谷歌搜索和修补几个小时并没有取得太大进展,所以希望这里有人可以提供帮助.

我正在尝试将所有请求转到某个路径以由第三方组件处理.

编辑我需要所有其他路径的所有请求才能正常运行.

我正在使用带有通配符映射的路由处理程序,如下所示:

routes.Add(new Route("pathiwant/{*EverythingElse}", new MyRouteHandler()));
Run Code Online (Sandbox Code Playgroud)

所有传统路由都正确地转发到处理程序,处理程序很好地转发到第三方组件.当我点击静态文件(.html,.txt等)时,它们会被StaticFile处理程序而不是我的处理程序拾取,所以我试图像这样关闭StaticFile处理程序(简化):

<system.webServer>
  <handlers>
    <remove name="StaticFile"/>
  </handlers>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

这会关闭StaticFile处理程序,但MVC仍然不会选择路由.

我宁愿不再创建自己的处理程序并注入ASP请求堆栈,因为看起来应该有一个MVC快乐的方法来做到这一点.

有什么想法吗?谢谢.

.net c# asp.net-mvc routes httphandler

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