• 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】

    ...

    更多。

  • 相关阅读:
    第二阶段~JS中的各种循环语句
    项目一~达人美食图册详情
    项目一~达人行程
    项目一~美食达人图册
    项目一~机票2
    项目一~达人首页
    项目一~Hotel5
    pythonday02基础与运算符
    pythonday01计算机初步认识
    第六章 百度Apollo ROS介绍(2)
  • 原文地址:https://www.cnblogs.com/lightluomeng/p/2934723.html
Copyright © 2020-2023  润新知