• WCF服务部署到IIS上,然后通过web服务引用方式出现错误的解决办法


    本文转载:http://www.cnblogs.com/shenba/archive/2012/01/06/2313932.html

    昨天在用IIS部署一个WCF服务时,碰到了如下错误:
    
    理解了文档内容,但无法进行处理。
      - WSDL 文档包含无法解析的链接。
      - 下载“http://admin-pc/IISHostService/Service1.svc?xsd=xsd0”时出错。
      - 基础连接已经关闭: 接收时发生错误。
      - 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。
      - 远程主机强迫关闭了一个现有的连接。
    元数据包含无法解析的引用:“http://admin-pc/IISHostService/Service1.svc?wsdl”。
    元数据包含无法解析的引用:“http://admin-pc/IISHostService/Service1.svc?wsdl”。
    如果该服务已在当前解决方案中定义,请尝试生成该解决方案,然后再次添加服务引用。
    
    该错误是在使用svcutil生成client代码时报的错误,服务是部署在IIS7上,部署的过程都是完全教科书式的进行。服务也正常启动了,显示如下内容
    
    已创建服务。
    
    若要测试此服务,需要创建一个客户端,并将其用于调用该服务。可以使用下列语法,从命令行中使用 svcutil.exe 工具来进行此操作:
    
    svcutil.exe http://leo-pc/IISHostService/Service1.svc?wsdl
    按照提示直接用svcutil.exe http://admin-pc/IISHostService/Service1.svc?wsdl命令去生成代码,就出现了开头说的那个错误。而如果用visual studio的webdevserver启动,则一切正常。
    
    经过一轮谷百之后,发现网上有很多类似的情况,有的说是因为用了wsHttpBinding协议引起的,或者是元数据没有正确公开,但都不是他们说的情况。后来找到了一篇文章,说的是添加WCF引用的一个陷阱。里面提到的情形跟我遇到的一致,原来问题出在权限,难怪用webdevserver可以很正常的运行
    。原来在下载http://admin-pc/IISHostService/Service1.svc?xsd=xsd0时的权限不足,在浏览器直接访问这个url会提示找不到页面。原因就是IIS进程的用户没有访问WindowsTemp目录的权限。找到Temp目录,然后找到IIS_USER用户,授权即可。 具体可参考:http://merill.net/2008/04/wcf-add-service-reference-gotcha-with-windows-server/

     WCF服务部署到IIS上,然后通过web服务引用方式出现错误的解决办法;如果wcf服务没有托管在IIS上,只是在本地浏览方式托管后通过web服务引用方式是没有这样的问题。

    问题描述是这样的。

    1、通过vs自带的wcf服务DEMO,发布到IIS 上去的时候,通过web服务引用时候出错。

    2、WCF客户端通过web服务引用时候,http://10.198.1.21:8089/Service1.svc 一直无法正常的添加引用。

    然而通过http://10.198.1.21:8089/Service1.svc?wsdl 是可以正确的查看元数据信息。

    3、 最终解决办法是:原因就是IIS进程的用户没有访问WindowsTemp目录的权限。找到Temp目录,然后找到IIS_USER用户,授权即可。

    为Temp目录条件IIS_USER用户。

     添加方法如下截图:

    5、修改Temp目录后,成功添加web服务引用:

  • 相关阅读:
    Android NDK 环境搭建(Native Development Kit )
    No enclosing instance of type Test is accessible. Must qualify the allocation with an enclosing in
    ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的?
    解决FileUpload控件上传文件大小限制
    学习图表控件MsChart
    Delphi PChar与String互转
    Ext.data.Store的基本用法
    My97 DatePicker 日期格式
    ASP.net流的方式输出图片或文件
    C# 二进制、十进制、十六进制互转
  • 原文地址:https://www.cnblogs.com/51net/p/3415855.html
Copyright © 2020-2023  润新知