小编Fra*_*tis的帖子

无法通过HTTPS使ServiceStack在IIS6中工作

我在使用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页面正常工作.

我很感激任何能够推动我朝着正确方向前进的人!

.net rest https iis-6 servicestack

7
推荐指数
1
解决办法
1540
查看次数

即使实现了所需的接口,泛型对象也需要强制转换

不要认为标题可以解释我正在谈论的内容,这有点难以解释,所以我会让代码进行讨论.您可以将其复制+粘贴到LINQPad中并作为C#程序运行,或者在visual studio中作为常规c#项目进行必要的调整(例如:将调用转换为Dump()到Console.Writeline()等) -

请注意,如果取消注释doStuff方法中的行,它将无法编译.

我的问题是,为什么我需要在generic2实现时使用强制转换Iab<TA,TB>?这是一些协方差的事吗?我还在使用.NET 3.5.

void Main()
{
    doStuff<a,b>();
}

public void doStuff<TA, TB>()
where TA : class, Ia, new()
where TB : class, Ib, new()
{
    Iab<TA, TB> x = null;

    x = new generic1<TA, TB>();
    x.Go().Dump();

    //x = new generic2<TA>(); // <-Cannot implicitly convert type 'UserQuery.generic2<TA>' to 'UserQuery.Iab<TA,TB>'. An explicit conversion exists (are you missing a cast?)
    x = (Iab<TA, TB>) new generic2<TA>();
    x.Go().Dump();
}

public interface Ia
{}

public interface Ib
{}

public class …
Run Code Online (Sandbox Code Playgroud)

.net c# generics interface

5
推荐指数
1
解决办法
121
查看次数

标签 统计

.net ×2

c# ×1

generics ×1

https ×1

iis-6 ×1

interface ×1

rest ×1

servicestack ×1