我试图在2012年版本8400上运行IIS8中运行的wcf服务 .
在安装web角色时,没有像2008年那样找到wcf的东西(3.51以下) .
安装时svc处理程序映射丢失了,所以我做了一个:
%windir%\Microsoft.NET\Framework\v3.0\WindowsCommunication Foundation\ServiceModelReg.exe –i
现在处理程序映射就在那里,但我仍然得到:
The resource you are looking for does not have a handler associated with it.
(我删除了静态文件处理程序 . )
该网站使用经典管道以使用模拟 .
12 回答
打开“打开或关闭Windows功能”上的以下内容
a).Net Framework 3.5 - WCF HTTP激活和非Http激活
b)所有WCF服务
进一步来说:
运行
Server Manager
(在任务栏和开始菜单上)选择要管理的服务器(可能是本地服务器)
向下滚动到“
Roles and Features
”部分 .从“任务”下拉列表中选择“
Add Role or Feature
”在左侧页面列表中的“
Add Role or Feature Wizard
" dialog, click down to "Features
” .展开
".Net 3.5"
或".Net 4.5"
,具体取决于您安装的内容 . (如果你没有,你可以回到“roles
”屏幕添加 .在“
WCF Services
", check the box for "HTTP-Activation
”下 . 如果您知道需要它们(tcp,命名管道等),也可以添加非http类型 .单击
"Install"
按钮 .我必须在
.NET Framework 4.5 Advanced Services
>WCF Services
中启用HTTP Activation
带有IIS8的Windows 8
点击
Windows+X
选择
Programs and Features
(列表中的第一项)选择左侧的
Turn Windows Features on or off
展开
.NET Framework 4.5 Advanced Services
展开
WCF Services
启用
HTTP Activation
我现在更喜欢通过脚本来做这件事
我们设法通过以下方式解决Windows Server 2012下的错误:
从"Remove Roles and Features Wizard" .NET Framework 4.5功能/ ASP.NET 4.5及其所有相关功能中删除
重新安装已删除的功能 .
它接缝的安装顺序是原因 .
此外,请确保在WCF服务下安装了HTTP激活 .
对于Windows 8计算机,没有“服务器管理器”应用程序(至少我无法找到它) .
Though I was able to resolve the problem . 我不确定我执行以下操作的顺序,但看起来像以下几个/几个操作有帮助:
打开“打开或关闭Windows功能”上的以下内容a).Net Framework 3.5 - WCF HTTP激活和非Http激活b)所有WCF服务下(如本问题的答案之一所述)
在“%windir%\ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation \”文件夹中执行“ServiceModelReg.exe -i”
通过两个命令注册ASP.NET 2.0(在文件夹C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727中):
aspnet_regiis -ga“NT AUTHORITY \ NETWORK SERVICE”aspnet_regiis -iru
重新启动PC ...看起来像是因为操作## 3和4在我的ASP.NET配置中被破坏了
Repeat action #2
从“程序和功能”中安装另外两个选项:.Net Framework 4.5 Advanced Services . 我检查了两个子选项:ASP.NET 4.5和WCF服务
重新启动应用程序池 .
序列有点疯狂,但这对我有帮助,可能对其他人有所帮助
在Windows 8或Windows Server 2012上配置IIS 8时,安装顺序非常重要 .
我在配置IIS 8时遇到了很多问题,但最后这些链接对我有所帮助
Installing IIS 8
Configuring WCF
使用PowerShell,您可以使用以下命令安装所需的功能:
在Windows 10(客户端)上,您也可以使用脚本编写脚本
请注意,这是与服务器skus不同的命令
它是.NET框架的HTTP激活功能Windows Process Activation功能也是必需的
这对我来说真的很愚蠢 . 在这里添加它,因为它是svc 404问题上比较流行的线程之一 .
我在项目设置'\ Web \ Project URL中粘贴了:
并且由于某种未知的原因(已经完成了这一千次)并没有立即发现.svc文件的名称在最后 .
DOH!
我刚刚从我的WCF测试客户端粘贴了地址,但没有充分检查 . 这在后台做的是在.svc地址创建一个IIS应用程序,我从IIS中得不到任何东西 . 我无法弄清楚我甚至无法点击.svc文件 .
显而易见,只需删除IIS中的应用程序并更改项目URL即可 .
经过近20年的努力,你仍然可以犯学生错误/新手错误 . 希望这可以帮助有人 .