Fra*_*tis 7 .net rest https iis-6 servicestack
我在使用ServiceStack在IIS6中使用HTTPS时遇到问题,我似乎无法找到有关设置它的任何文档.目前我有一个类似的端点设置 - http://example.com/api.ashx.当我浏览到这个时,我得到了有用的ServiceStack生成页面,该页面解释了http://example.com/api.ashx/metadata上提供的API .当我浏览到https://example.com/api.ashx(注意https)时,我得到此错误消息 -
'/'应用程序中的服务器错误.无法找到该资源.说明:HTTP 404.您要查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用.请查看以下网址,确保拼写正确.请求的URL:/api.ashx
我在web.config中设置了以下内容(例如这里 - http://www.servicestack.net/ServiceStack.Hello/) -
<!-- ServiceStack: Required to host at: /api.ashx -->
<location path="api.ashx">
<system.web>
<httpHandlers>
<add path="*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*"/>
</httpHandlers>
</system.web>
Run Code Online (Sandbox Code Playgroud)
在我的本地Windows 7机箱上,我正在运行IIS7,它工作正常,但测试和实时环境仍在使用IIS6,我无法让它在那里工作.
使用https时,其他常规aspx页面正常工作.
我很感激任何能够推动我朝着正确方向前进的人!
IIS 6的问题是IIS 6.0请求管道无法识别没有ASP.NET扩展的路径,例如.aspx没有传递给ASP.NET isapi hander.因此,通常有2个选项可以实现此目的,因此您可以让ServiceStack在IIS 6上运行:
将Web.Config中的servicestack路径从"*"更改为"servicestack.ashx"
在<system.web>
<httpHandlers> <add path ="servicestack.ashx"type ="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory,ServiceStack"verb ="*"/> </ httpHandlers>
</system.web>
为虚拟目录添加通配符映射,以将所有未处理的请求传递给ASP.NET:按照以下步骤使用IIS 6.0创建通配符脚本映射:
