『QQ:1353814576』

Owin .NET 自我宿主 平台上不支持操作(Operationnot Supported on this Platform)


Owin Microsoft.Owin.Hosting 自我寄宿部署webapi 启动 提示平台上不支持操作(Operation not Supported on this Platform)的解决办法

最近开发一个控制台程序 需要集成一个网络接口,用来接收外部发送的请求数据,因为不想安装依赖IIS 就使用了Owin寄宿自身的方式实现了webapi,经过本地测试都很正常,但在部署客户设备时却无法启动,日志显示有启动异常

异常捕获到异常 “未将实例引用到对象” ,这坑爹的提示坑我折腾了很久 说多了都是泪,明显这个错误是不对的,1是本地运行正常 2是查看日志传递的参数没有为null的情况,于是深扒 错误信息 最终发现最深层的错误信息有一个

Operationnot Supported on this Platform(即提示平台上不支持操作)

你以为找到这百度就容易解决了 那就太天真了,百度到类似的不是没有答案就是答非所问;最终还是得靠自己,这里记录下

当日折腾到凌晨2点多,才得以解决 以下是解决过程:

首先说下 系统环境是windows Server 2016

经过一天验证各种网络办法,什么修改注册表,重装。net环境等等,最终结果都行不通,想着是不是放弃这种方式 改用webapi发布到IIS来实施,没办法该妥协时还是要妥协的。

于是就写了demo ,准备部署安装IIS前发现服务器已经安装好了,于是就打开IIS管理器试着创建网站,可是IIS管理器却提示无法启动w3svc ,是不是让人感觉很绝望 0.0 ,但此时我仿佛明白了点什么:


百度找到了一个解决方法:

1)、首先在CMD命令行(管理员身份启动)中输入:fsutil resource setautoreset true c:\

2)、然后在运行services.msc

3)、找到Windows Process Activation Service服务 启动该服务,启动类型:自动

4)、继续找到World Wide Web Publishing Service服务 点击启动,if弹出报错信息:1068:依赖服务或组无法启动,这个时候你执行下面的操作。

5)、在运行里输入regedit--打开注册表编辑器--找到HKEY_LOCAL_MACHINE-->SYSTEM-->CurrentControlSet-->services-->找到HTTP点击,在右边找到Start双击后,把数值数据改成3,基数为:十六进制,最后点击确定。

6)、重新启动计算机后,在运行里输入services.msc,打开服务,找到World Wide Web Publishing Service服务,会发现状态:已启动 启动类型:自动。

按方法操作完后重启再打开iis管理器 启动网站 OK

抱着验证的想法 再次打开控制台程序 没有再报错了