WCF部署纠错

说明

这是“又”是一篇需要长期跟进的帖子。将WCF初次部署到IIS上总是会出现很多让人抓狂的错误。虽然已经吃了很多这样的亏,而且每次都很“深刻”。但是鲜有“完整和丰富”的解决方案。这大抵是因为,这属于环境配置,一旦环境配置完成,就不会再出现——直到碰到一个新的环境。所以,这类的经验积累起来不是很快速,环境又不易重现。零散的Tip又极难成文...总的来说,因为种种原因,WCF的部署就是这么头痛。所以,我觉得为自己写一个跟进贴,慢慢维护。

解决方案来自网上各网友的博客,但是由于时间的推移,这里无法一一引用。特此说明。

错误提示以及解决方式

添加功能

添加功能是指在windows上安装功能:
Windows系统使用【控制面板-程序和功能-左侧的启用或关闭windows功能】。
Windows Server系统使用【服务器管理-添加角色和功能-在向导中导航到功能】。

一般处理方式

如果问题没有得到解决,重启IIS是一个可尝试的操作。由于说明“需不需要重启IIS”是一件很蛋疼的事情,所以这里作为备用处理方式进行声明。

路径

由于操作系统的路径不同,解决方式中使用的路径也不同。可使用 %windir%。

以管理员权限运行

在%windir%/system32/找到cmd.exe然后【右键-以管理员权限运行】。

操作系统版本

根据操作系统的版本类型(32,64),路径也会有所不同。

由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。

类似的错误也需要采取以下方式解决。

无法访问请求的页面,因为该页的相关配置数据无效。

简单的说就是如图将以下选项都勾上,我用的是windows8,windows7无需处理.net4.5部分(没安装4.5的话)。

未能从程序集“XXX, Version=XXX, Culture=neutral, PublicKeyToken=XXX”中加载类型“XXX(例如Service.Model)”。

参考以下步骤:
在命令提示符CMD(需要以管理员权限运行)上打开地址 C:\Windows\Microsoft.NET\Framework\v4.0.30319(最高的.net版本,除4.5之外) 。
执行aspnet_regiis.exe -iru 。如图:

另外,如果是windows8的开发环境,则aspnet_regiis.exe -iru指令执行后会被提示不可用。这个时候只需要参考上面一个错误的解决方式,将需要安装的功能装上即可。如果还是不行,就需要检查IIS,需要将IIS的应用程序池的模式设置为“经典”(就IIS这个操作,其他版本的操作系统未测试)。

 

请求筛选模块被配置为拒绝该文件扩展名。

以管理员运行命令:
C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe -i

HTTP 错误 404.17 - NotFound 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。

以管理员运行命令:
C:\Windows\system32>cd D:\Windows\Microsoft.NET\Framework64\v3.0\Windows Communication Foundation\
C:\Windows\Microsoft.NET\Framework64\v3.0\Windows Communication Foundation>servicemodelreg.exe -r

请求筛选模块被配置为拒绝包含 hiddenSegment 节的 URL 中的路径。

注意,一般情况下,并不需要考虑这个问题。如果需要解除这个限制的话,参考以下步骤:
以管理员权限运行记事本(如果将提示您输入管理员密码或进行确认,键入该的密码,或单击 继续 )。
打开文件 %windir%\System32\inetsrv\config\applicationHost.config 。
在该 ApplicationHost.config 文件中找到在 <requestfiltering>元素,然后找到该 <hiddensegments>元素。
在该 <hiddensegments>元素,删除与所请求的 URL 中指定的目录匹配的条目。Ctrl+S后退出。

无法识别的属性“targetFramework”。请注意属性名称区分大小写。

.NET版本的问题。需要将站点的.net版本和应用程序的.net版本调成一致。如果无法选择应用程序池版本为4.0(或其他)的话,需要进行以下操作:
【 安装指定版本.net-以管理员权限运行:C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis.exe -r】

...

更多。

原文地址:https://www.cnblogs.com/lightluomeng/p/2934723.html