嘿,我在运行.NET framework 4.0
网站时遇到了问题IIS7.0
.我得到的错误是:
HTTP错误404.2 - 未找到"由于Web服务器上的ISAPI
和CGI
限制列表设置,无法提供您请求的页面".
Module : IsapiModule ,
Notification : ExecuteRequestHandler,
Handler : PageHandlerFactory-ISAPI-4.0_32bit ,
Error Code : 0x800704ec
Run Code Online (Sandbox Code Playgroud) 有没有人找到在IIS中运行Java Web应用程序的方法?在我看来,完全有可能编写一个ISAPI插件(是正确的单词?),它将Jetty或自定义servlet容器与IIS集成在一起.这样做的好处是像Jira这样的许多高端Java应用程序需要单独的基础架构才能用于所有Microsoft商店.
我试图简化我的MVC应用程序并尽可能删除.有人可以向我解释下面这段代码在应用程序根目录下的web.config文件中的作用.我已将其评论出来并仍设法运行该应用程序...
<system.webServer>
<handlers>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit"/>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit"/>
<remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0"/>
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0"/>
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/>
</handlers>
...
Run Code Online (Sandbox Code Playgroud)
我看过这个问题:ASP.NET MVC 4和ExtensionlessUrlHandler有一个链接到这个博客的答案:http://blogs.msdn.com/b/tmarq/archive/2010/05/26/how-extensionless- urls-are-handling-by-asp-net-v4.aspx但是我没有找到它来解释我的问题.
我在开发和生产中使用:IIS 8,ASP.NET MVC 4,.NET 4.5
我试图在相关的RFC,IETF RFC 3986中找到它,但无法弄清楚.
HTTP的URI是否允许Unicode或任何类型的非ASCII?
您能否引用支持您答案的部分和RFC.
注意:对于那些可能认为这与编程不相关的人来说 - 确实如此.它与我正在构建的ISAPI过滤器有关.
附录
我已经阅读了RFC 3986的第2.5节.但是RFC 2616,我认为是当前的HTTP协议,早于3986,因此我认为它不能与3986兼容.此外,即使或当HTTP RFC更新后,仍然存在合理化问题 - 换句话说,HTTP URI是否支持所有RFC3986条款,包括哪些适合包含非US-ASCII字符?
所以,我正在研究的网站是使用urlrewriting与aspnet_isapi.dll协调(一切都映射到它).我提出了我的app_offline.htm文件,然后显示了所有文本,但是没有提供CSS或图像.由于通配符映射而不是IIS,我猜他们正在处理它们.它是否正确?如果是这样,我如何允许IIS提供这些文件?此外,我可以看到在web.config中出现的重写器设置问题:
<rewrite url="^~/images/network/(.*)/(.*).jpg$" to="~/services/ImageHandler.ashx?type=$1&id=$2"/>
<rewrite url="^~/image/view/(.*).jpg$" to="~/ServePRView.aspx?id=$1"/>
<rewrite url="^~/asset/view/(.*).jpg$" to="~/services/ImageHandler.ashx?id=$1&type=asset"/>
Run Code Online (Sandbox Code Playgroud)
感谢大家的帮助,-Steve
我找到了一个WiX教程,但它真的很啰嗦,看起来比我想要的更多.什么是快速入门的最佳方式?
我的最终目标并不复杂:安装ISAPI过滤器的安装程序.
我发现ASP.NET的一个问题,我知道至少已经让另外一个人难过了.我们试图使用HttpModule来处理Web应用程序的通配符请求.生成的url是动态的,可能长达数百个字符.不幸的是,aspnet_isapi.dll文件中似乎存在一个限制,它将url中路径的长度限制为MAX_PATH,其中硬编码为260个字符.
有没有其他人遇到这个并找到了解决这个限制的方法?查询字符串参数不是一个选项.
谢谢,格雷格巴拉德
在IIS6中是否有使用ISAPI过滤器/扩展的原因?使用httphandler/http模块可以达到同样的效果.在IIS7中还有ISAPI被彻底删除了吗?IIS7的整个代码是用.Net编写的.我想知道是否应该详细了解ISAPI以进行调试或添加新功能?
我在Windows 7 Pro 64和IIS 7.5上运行Delphi XE,开发了一个ISAPI应用程序.IIS配置正确(包括允许32位代码在ISAPI进程中运行).ISAPI进程正常运行.
在Delphi中,我试图附加到在localHost上运行的ISAPI进程以逐步执行我的ISAPI.dll代码:运行 - >附加到Process-> InetInfo.exe.
我已经使用Windows XP和IIS 5完成了这一千次,但在这个新环境中,我无法附加到ISAPI进程.尝试附加时,我在IDE中收到错误消息:
无法创建进程 - 不支持请求
这花费了我很多时间 - 我必须为每行代码抽出调试字符串,运行应用程序,然后查看我的调试字符串等.
为什么我不能加入ISAPI流程?这是IIS 7.5配置问题吗?可能与32/64位问题有关,因为IIS是本机64位而Delphi调试器是32位?
我正在评估使用Delphi(ISAPI/CGI/...)编写Web应用程序的可能性.我仍然看不到使用Delphi而不是"经典"Web开发框架的充分理由.
如果您有这方面的经验,请分享您的意见.你会推荐Delphi而不是PHP/Rails/ASP/......吗?你知道用Delphi编写的任何Web应用程序吗?(不是网络服务)