Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 无法使用HTTPS使ServiceStack在IIS6中工作_.net_Rest_Https_Iis 6_<img Src="//i.stack.imgur.com/WM7S8.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">servicestack - Fatal编程技术网 servicestack,.net,Rest,Https,Iis 6,servicestack" /> servicestack,.net,Rest,Https,Iis 6,servicestack" />

.net 无法使用HTTPS使ServiceStack在IIS6中工作

.net 无法使用HTTPS使ServiceStack在IIS6中工作,.net,rest,https,iis-6,servicestack,.net,Rest,Https,Iis 6,servicestack,我在让ServiceStack在IIS6中使用HTTPS时遇到问题,我似乎找不到任何关于设置此功能的文档。 目前,我有一个端点设置,如so-。当我浏览到这个页面时,我会看到有用的ServiceStack生成页面,该页面解释了上可用的API。 当我浏览到通知https时,反而会收到以下错误消息- “/”应用程序中出现服务器错误。找不到资源。 描述:HTTP404。您正在寻找的资源或其 依赖项可能已被删除、名称已更改或已被删除 暂时不可用。请查看下面的URL并进行修改 确保它拼写正确。请求的URL:

我在让ServiceStack在IIS6中使用HTTPS时遇到问题,我似乎找不到任何关于设置此功能的文档。 目前,我有一个端点设置,如so-。当我浏览到这个页面时,我会看到有用的ServiceStack生成页面,该页面解释了上可用的API。 当我浏览到通知https时,反而会收到以下错误消息-

“/”应用程序中出现服务器错误。找不到资源。 描述:HTTP404。您正在寻找的资源或其 依赖项可能已被删除、名称已更改或已被删除 暂时不可用。请查看下面的URL并进行修改 确保它拼写正确。请求的URL:/api.ashx

根据这里的示例,我在web.config中设置了以下内容--

在我的本地Windows7设备上,我运行的是IIS7,它工作得很好,但测试和现场环境仍然使用IIS6,我无法让它在那里工作

使用https时,其他常规aspx页面工作正常


如果有人能给我一个正确的方向,我将不胜感激

IIS 6的问题在于,IIS 6.0请求管道无法识别没有ASP.NET扩展名的路径,例如,aspx无法传递给ASP.NET isapi处理程序。因此,通常有两个选项可以实现这一点,这样您就可以让ServiceStack在IIS 6上运行:

将Web.Config中的servicestack路径从“*”更改为“servicestack.ashx”

为虚拟目录添加通配符映射,以将所有未处理的请求传递到ASP.NET: 按照以下步骤使用IIS 6.0创建通配符脚本映射:

右键单击网站并选择“属性” 选择主目录选项卡 单击配置按钮 选择映射选项卡 单击Insert按钮,见图4 将aspnet_isapi.dll的路径粘贴到可执行文件字段中。您可以从.aspx文件的脚本映射复制此路径 取消选中标记为“验证文件是否存在”的复选框 单击OK按钮
mythz的答案对我不起作用

我使用servicestack配置向web.config添加了一个位置标记,从而使其正常工作。 我发现servicestack使用path=*-工作,但使用了许多RequestSepiser,但解决方法如下:

<location path="UniqueTag">
    <system.web>
        <httpHandlers>
            <add path="*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" />
        </httpHandlers>
    </system.web>
</location>

但请注意,mythz答案中的选项2可能也是必需的,因为它是我们解决方案中的默认设置。

实际上,还有一个步骤我错过了与证书相关的问题。我的错。不过,这很有帮助,谢谢:尝试选项1:我现在收到404错误,而不是处理程序未找到错误;尝试选项2:仍然收到处理程序未找到错误;在选项2:404错误中设置通配符扩展映射后,再次尝试选项1。还有其他想法吗?在IIS6中,我很难让它发挥作用。
<location path="UniqueTag">
    <system.web>
        <httpHandlers>
            <add path="*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" />
        </httpHandlers>
    </system.web>
</location>
[Route("/UniqueTag/DeletePost/{Id}", Verbs = "POST")]